16

我刚刚开始使用 DDD,在弄清楚如何适应数据的关系性质时遇到了一些麻烦。我有我认为会被认为是我的聚合根的东西,但聚合也有它自己的聚合。不想违反得墨忒耳法则,我想知道我是否在想这个错误,并希望一些 DDD 专家可以提供一些见解。

我的聚合根是我的Account对象,它具有众多AccountElement实体的聚合,这些实体本身就是各个ProductComponent实体的逻辑分组。

anAccountElement的上下文之外Account没有任何意义,因此我对我的结论感到满意,即该Account对象是我的聚合根,并且我预计该实体具有聚合Elements属性。ProductComponent让我困惑的是这个系列。这个聚合在 a 之外没有任何意义,在 a 之外AccountElement真的没有任何意义Account

我认为我不应该ProductComponent通过点我的方式来访问单个对象,例如:

var reference = account.Elements(0).ProductComponents(0).ReferenceCode;

ProductComponent但与此同时,直接从Account实体访问 a 是没有意义的(从域的角度来看) 。

我敢肯定,如果不了解我的领域,这一切有点难以理解,但我希望这足以获得一些好的反馈。

4

1 回答 1

2

罗伯特链接到的文章是一篇很好的文章。我要补充一点,如果 ProductComponent 仅存在于 AccountElement 的上下文中并且 AccountElement 仅存在于 Account 的上下文中,那么通过扩展 ProductComponent 就在 Account 的上下文中。

于 2010-02-05T22:56:49.850 回答