关联遍历方向

7
我正在阅读Eric Evans的《领域驱动设计》一书中有关“关联”的第五章。他建议为关联设置遍历方向以减少模型复杂性。
我引用他的话:
“尽可能地限制关系非常重要。双向关联意味着只有同时理解两个对象才能理解它们。当应用程序要求不需要在两个方向上进行遍历时,添加遍历方向可以减少相互依赖并简化设计。了解领域可能会揭示自然的方向偏差。”
如何选择关联的遍历方向?通常,在两个元素之间存在关联时,可以从两个方向阅读和理解。我们如何在两者之间做出选择?
谢谢。
2个回答

8

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

我想Evans只是建议您仅在需要并且将在代码中立即使用它时才添加遍历方向,而不是过早地添加遍历方向“以防我们以后需要它”。


4

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接