下游对象应该始终是聚合根吗?

时间:2013-06-23 17:55:18

标签: domain-driven-design

Implementing DDD,第233页:

  

有时下游Context中的对象必须是   最终与一个或多个聚合的部分状态一致   在上游上下文中。在那种情况下,我们设计了一个聚合   下游消费上下文,因为实体用于维护   变革的连续性线索

根据作者的说法,如果需要最终一致性,那么下游对象应始终是聚合根。是否有一个特殊原因导致它永远不应被设计为内部实体

更新:

有人可能会说他们总是需要成为根,以防止具有相同id的多个下游对象(即反映上游对象状态的对象),但如果同步只是一种方式(从上游到下游的上下文),真的没有两个下游对象可以拥有相同ID的情况吗?

感谢

1 个答案:

答案 0 :(得分:0)

我会对此采取行动。

他正在讨论下游有界上下文,而不是下游对象。这是重要的一句话。

在不同的有界上下文中,您需要通过该上下文中的聚合根进行通信,因为DDD中已建立的规则是所有通信都通过聚合根。您不会直接在该AR内的实体或值对象上调用方法。

此外 - 聚合根是DDD中一致性的单位。正如他所说 - 如果您需要在下游有界上下文中存在的对象中最终一致,请在该下游有界上下文中设计聚合根(一致性边界)。