Domain driven design 协会';横向

Domain driven design 协会';横向,domain-driven-design,uml,Domain Driven Design,Uml,我正在阅读Eric Evans的《领域驱动设计》-《领域驱动设计》一书,第五章,关于关联。他的一个降低模型复杂性的建议是为关联施加一个遍历方向 我引述: 尽可能多地约束关系非常重要。A. 双向关联意味着两个对象都可以理解 只有在一起。当应用程序需求不需要遍历时 在两个方向上,添加遍历方向会减少 相互依赖并简化了设计。了解领域 可能会显示出自然的方向偏差 如何为关联选择遍历方向?通常,当两个元素之间存在关联时,可以在两个方向上读取和理解该关联。是什么导致我们选择一个方向而不是另一个方向 谢谢当实体

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

我引述:

尽可能多地约束关系非常重要。A. 双向关联意味着两个对象都可以理解 只有在一起。当应用程序需求不需要遍历时 在两个方向上,添加遍历方向会减少 相互依赖并简化了设计。了解领域 可能会显示出自然的方向偏差

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


谢谢

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


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

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

在设计过程中,您可能希望指出导航能力,以在实现级别打破双向性,并促进系统编码