跨越有界上下文的实体建模

时间:2016-11-29 04:41:05

标签: domain-driven-design bounded-contexts

当概念在有界上下文中建模为根实体并且在另一个有界上下文中建模为子实体(两个BC中的相同身份)时是否存在任何缺陷?

来自Eric Evans DDD:

  

除root之外的ENTITIES具有本地标识,但它只需要   因为没有外部对象可以看到,所以在聚合中是唯一的   它超出了根ENTITY的上下文。

即使它扮演儿童实体的角色,这个概念也具有全球认同感。 我认为Evan的观点是避免在其聚合之外修改子实体,但在另一个BC中,不会违反任何不变量。 你觉得怎么样?

3 个答案:

答案 0 :(得分:3)

在这里使用全局ID非常好。我认为Eric意味着id在其父聚合中应该是唯一的至少

我在我们工作的系统中有很多类似的情况,这就是我们设计它的确切方式。

答案 1 :(得分:0)

正如我所看到的,缺点是在共享实体时有界上下文之间的概念泄漏。

起初,在防止重复方面似乎是一个好主意,但是您将在以后付费。我可以看到一个场景,其中一个上下文中的更改有意义,但另一个上下文中没有。

答案 2 :(得分:0)

这很好;儿童实体'是根实体的上下文中的不可变值对象'。换句话说,根实体可以引用子实体,但它不能改变它们的属性。