一系列简单的聚合根问题(领域驱动设计)

时间:2010-05-17 09:49:35

标签: domain-driven-design aggregate root

我有一些(希望)关于域驱动设计中聚合根的简单问题:

  1. 将聚合根作为另一个聚合根的属性是否可以?
  2. 在两个或多个聚合根中包含给定实体是否可以?
  3. 我的最后一个问题涉及更多。我有一个网站,其中有一些实体真正属于“网站”聚合根。它们是“新闻”,“产品”和“用户”。数据库中没有“网站”表,但“网站”似乎是这三个实体的良好聚合根。 这通常是如何实现的?

    谢谢!

1 个答案:

答案 0 :(得分:1)

您是否有涵盖整个网站的任何一致性规则(涉及多个新闻产品和使用者)?如果没有,这些实体(新闻,产品,用户)是您聚合根的良好候选者。

聚合根主要功能是提供一致性和事务语义边界。

回答你的问题:

  1. 是的,只要这样就可以了 引用聚合根不是 在任何操作期​​间修改 包含AR。这与之相关 一致性边界: 跨越多个的业务 聚合不保证 产生一致的结果,所以他们 应该避免

  2. 不,是一个实体 (不是AR)可以是其中的一部分 只有一个聚合。