我有多少聚合根

时间:2013-04-28 15:33:09

标签: domain-driven-design aggregateroot

这些是我的实体和关系:

enter image description here

没有实体A,任何实体都不能存在。当A被删除时,所有其他实体也将被删除。因此A是我的聚合根。

但我不确定

1.) B is also an aggregate root for entity C,D and E 
2.) E is also an aggregate root for entity F

1.) C,D and E can not exist without B being created
2.) F can not exist without E being created

我现在有3个聚合根,因此会创建3个存储库吗?

1 个答案:

答案 0 :(得分:2)

如果没有关于您的域名的更多信息,则无法就聚合边界提出建议。实体之间的关系与实体关联的行为不相关。实体之间的关系不会自动转换为对象引用;关系也可以作为存储库实现。

聚合是一致性边界。换句话说,它聚合了在执行相关行为时必须保持一致的状态。在您的情况下,很可能每个实体都是一个聚合体。请查看effective aggregate design,以便更好地将域分解为聚合。