Rob*_*ert 3 domain-driven-design aggregate root
将域驱动设计应用于项目时,如何识别聚合根?
例如,在标准的电子商务网站中,您可能会说订单是一个,而用户是另一个.但是,如果您的用户属于公司,该怎么办?这会使您的公司成为集合根吗?
我有兴趣听取人们制定聚合根的方法,以及如何识别选择不当的聚合根.
识别聚合根的一种好方法是使用"删除"测试.在您的域中,如果删除根,则删除的内容是什么?通过这种方式,您可以识别域对象所有权,这是Aggregates的特征.
聚合也会创建一致性边界,因此您的根应该从对象图的其余部分"隐藏"聚合元素,并检查它们应该保持的一致性和不变量.Aggregate中的对象只引用根(不是彼此).因此,如果您在域模型中发现类似的内容,则可能会建议您拥有聚合根.