1

实施 DDD,第 233 页:

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

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

更新:

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

谢谢

4

1 回答 1

0

我会对此进行破解。

他说的是下游有界上下文,而不是下游对象。这是这里的重要短语。

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

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

于 2013-06-25T21:52:09.580 回答