3

在将领域驱动设计应用于项目时,您如何识别聚合根?

例如,在一个标准的电子商务网站中,您可能会说 Order 是一个,而 User 是另一个。但是,如果您的用户属于公司怎么办?这是否使您的公司成为总根?

我很想听听人们计算聚合根的方法,以及如何识别选择不当的聚合根。

4

1 回答 1

5

识别聚合根的一种好方法是使用“删除”测试。在您的域中,如果您删除根目录,它会删除什么?通过这种方式,您可以识别域对象所有权,这是聚合的一个特征。

此外,聚合创建一致性边界,因此您的根应该从对象图的其余部分“隐藏”聚合元素,并检查它们应该保持的一致性和不变量。聚合内的对象仅保存对根的引用(而不是彼此的引用)。因此,如果您在域模型中发现类似的东西,它可能表明您有一个聚合根。

于 2010-05-18T08:42:50.110 回答