为了研究DDD,我阅读了这个有趣的话题,并发现了一个新的想法,即作者说“关于没有在Product中创建一个‘ProductReviews’集合的论点”。因为“这两个实体之间没有真正的不变量”

在ICollection<ProductReview>类中没有Product。那么,问题是
发布于 2017-06-12 12:02:52
它与DDD兼容吗?
是的,将ProductReviews逻辑集合的元素分离为产品聚合之外的聚合与DDD兼容。
也就是说,当以这种方式分离事物时,通常不会尝试坚持事务级联删除,如您链接的示例所示。
这样做的好处和缺点是什么?
通常有两个优点
如果对模型的两个不同部分的更改不需要同步--也就是说,永远不需要在一起更改两个部分以保持不变--那么将这些部分建模为单独的聚合有助于使分离变得显式(因此更容易推理,等等)。
将模型分解成单独的聚合支持并行工作,这意味着我们可以减少进行更改所需的协调量。
如果模型的两个不同部分确实彼此分离,您可以使用完全不同的技术来存储它们。
另一方面,它的缺点是,当您稍后发现您需要协调对两个不同聚合的更改时,事情就会变得一团糟。在这一点上,您真正拥有的是数据模型中的单个“逻辑”聚合,它已经被分解为域模型中具有协调责任的多个聚合。
发布于 2017-06-12 13:02:02
来自cqrs.nu
--我知道聚合是事务边界,但是我确实需要在同一个事务中事务地更新两个聚合。我该怎么办? 你应该重新考虑以下几点:
https://stackoverflow.com/questions/44495741
复制相似问题