【问题标题】:Associations' traversal direction关联的遍历方向
【发布时间】:2012-03-21 12:41:23
【问题描述】:

我正在阅读 Eric Evans 的关于领域驱动设计的书 - 第 5 章,关于关联 .他降低模型复杂性的建议之一是为关联强加一个遍历方向。

我引用:

尽可能限制关系很重要。一个 双向关联意味着两个对象都可以理解 只有在一起。当应用需求不需要遍历时 在两个方向上,添加一个遍历方向减少 相互依存并简化设计。了解域 可能会显示出一种自然的方向偏差。

如何选择关联的遍历方向?通常,当两个元素之间存在关联时,可以从两个方向阅读和理解。什么可能导致我们选择一个方向而不是另一个方向?

谢谢

【问题讨论】:

    标签: domain-driven-design uml


    【解决方案1】:

    当实体 A 和实体 B 之间存在关联时,您通常会发现自己只使用 A.B 而从不使用 B.A。这可能是因为 A 是一个聚合根,并且始终是您的起点,因为无论您在何处操作 B 等,您都已经拥有对其 A 的引用。

    我猜 Evans 只是建议您只在需要时添加遍历方向,然后在代码中使用它,而不是过早地添加遍历方向“以防我们以后需要它”。

    【讨论】:

      【解决方案2】:

      从概念上讲,所有关联都是双向的。然而,当实现它们时,大多数最终都是单向的,从那时起您只需要在其中一个参与者中维护链接。

      在设计过程中,您可能希望在实现层面打破双向性,方便系统的编码

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-26
        • 1970-01-01
        相关资源
        最近更新 更多