【发布时间】:2016-11-29 11:05:22
【问题描述】:
我对 DDD 中的聚合根概念有点困惑。理论告诉它应该是与当前操作相关的聚合根。
例如,我有一个代表公司的根帐户。它具有地址、属于该帐户的用户、其他一些属性。
我有好几页;一种是管理一般信息,例如姓名、电子邮件、电话... 另一个是维护地址。 另一个显示所有用户(并编辑用户信息,可能也在 Account 对象下)
在第一种情况下我不关心地址,在第二种情况下我不关心姓名、电子邮件......
我需要两个单独的帐户对象还是只需要一个帐户? (模型可能比我描述的更复杂)
因此,例如,我最终可能会得到以下类:BasicAccountInformation、AccountAddress、AccountUsers.... 还是只有一个:包含所有数据的帐户?
什么是正确的 DDD 方法?我认为,在一种情况下,我会得到一个非常复杂的类,其中包含许多属性和逻辑;或者很多简单的类,每个类有 2-10 个属性。
【问题讨论】:
-
也许你应该考虑你的有界上下文...
-
我想你会发现我的Aggregate Explained 三部曲对你的问题很有用。长话短说,每个业务案例都应该有一个聚合及其根。您可以拥有(您应该拥有)多个代表同一概念的聚合,每个涉及该概念的命令业务案例一个聚合
-
感谢 MikeSW,博客文章使这个主题更加清晰。
标签: domain-driven-design aggregateroot