0

EntityA 是一个聚合根,有许多 EntityB 实体。EntityB 有许多 EntityC 实体。EntityC 正在引用 EntityB(原始父级)和 EntityA(创建 EntityC 时为空)。

有一次,我想将 EntityA 设置为 EntityC 的“新父级”,因此在 EntityC 中,我将对原始 EntityB 父级的引用设置为 null,并将对 EntityA 的引用设置为(之前为 null)。

这种“动态实体父”的想法是否与 DDD 兼容?

4

2 回答 2

0

您的想法绝对与 DDD 兼容。但是,如何实施它很重要。

正如 eulerfx 所指出的,这里的聚合设计是相关的。不过,我确实怀疑您可能有某种形式的分类结构。这意味着该结构的表示可能会成为一组新的实体/聚合。或者,如果不是一个完整的子域,那么可能有实体中的值对象表示的分类。但是,如果您发现自己处于该位置,则在聚合中引用其他聚合有点危险。

于 2013-04-18T04:33:18.267 回答
0

设计聚合时的主要考虑因素之一是将其视为一致性边界。所以当你考虑是否应该表达组成实体之间的各种关系时,考虑这些关系是否需要实现行为,以及它们是否需要在执行所述行为后保持一致。DDD 并没有规定对象模型本身的实现,而是规定了对行为和事务一致性的关注。也很多时候,实现关系以支持查询场景。在这些情况下,不要污染聚合,而是创建一个单独的read-model。另外,看看有效的聚合设计

于 2013-04-17T15:24:42.710 回答