Jos*_*son 14 domain-driven-design aggregateroot
我刚刚开始使用DDD,我在确定如何适应数据的关系性质方面遇到了一些麻烦.我有我认为会被视为我的聚合根,但聚合也有自己的聚合.我不想违反德米特法则,我想知道我是否正在考虑这个错误,并希望一些DDD专家可以提供一些见解.
我的聚合根是我的Account
对象,它有许多AccountElement
实体的集合,它们本身就是各个ProductComponent
实体的逻辑分组.
一个AccountElement
的上下文之外Account
已经没有任何意义,所以我很舒服,我的结论是,Account
对象是我聚合根,我预计其总实体Elements
属性.这是让ProductComponent
我感到困惑的系列.该集料具有外没有任何意义AccountElement
,而真正具有的外部没有任何意义Account
.
我认为我不应该通过点击它来访问单个ProductComponent
对象,例如:
var reference = account.Elements(0).ProductComponents(0).ReferenceCode;
Run Code Online (Sandbox Code Playgroud)
但与此同时,(从域的角度来看)ProductComponent
直接从Account
实体访问是没有意义的.
我确信如果不了解我的域名,这有点难以理解,但我希望这足以得到一些好的反馈.
罗伯特链接的文章是一篇很好的文章。我想补充一点,如果 ProductComponent 仅存在于 AccountElement 的上下文中,并且 AccountElement 仅存在于 Account 的上下文中,那么通过扩展,ProductComponent 就存在于 Account 的上下文中。