DDD:用于引用非聚合根的解决方案

fro*_*rol 12 domain-driven-design aggregateroot

我有两个聚合根和两个非聚合根实体:

实体关系

我知道,这种关系D -> B打破了DDD原则.

我听说,在大多数情况下,解决方案是使引用的实体成为新的聚合根.

但是如果B是A 的真正孩子(B不能没有A),那么将B作为一个新的聚合根真的是一个选择吗?

gui*_*e31 2

我同意你的观点,有时将一个实体与其集合体分开是没有意义的,因为它如此自然地融入其中。这就是为什么我不完全相信某些人推荐的“小总量”方法的原因之一。

在这种情况下,您可以做的是通过遍历 A 的实例来获取对 B 的引用,而不是直接获取它。毕竟,如果没有 A 就无法存在 B,那么聚合之外的对象就没有理由知道特定的 B 而不知道其 A。