【问题标题】:Entity modeling across bounded context跨界上下文的实体建模
【发布时间】:2016-11-29 04:41:05
【问题描述】:

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

来自 Eric Evans DDD:

根以外的实体具有本地身份,但它只需要 在聚合中是唯一的,因为没有外部对象可以看到 它脱离了根 ENTITY 的上下文。

即使扮演子实体的角色,该概念也将具有全局身份。 我认为埃文的观点是避免在其聚合之外修改子实体,但在另一个 BC 中不会违反不变量。 你怎么看?

【问题讨论】:

    标签: domain-driven-design bounded-contexts


    【解决方案1】:

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

    我在我们工作的系统中有很多类似的案例,而这正是我们设计它的方式。

    【讨论】:

      【解决方案2】:

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

      起初,在防止重复方面,这似乎是一个好主意,但是您稍后会为此付费。我可以看到这样一种情况:一种情况下的更改有意义,而另一种情况下则没有意义。

      【讨论】:

      • 不是为了防止重复,而是相反。实体根据限界上下文发挥作用(不同的模型,只是共享身份)。鉴于此,一个 BC 可以要求该实体与另一个实体保持一致,而另一个则不能要求它。
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2014-08-22
        • 1970-01-01
        • 2018-01-18
        • 2020-06-14
        • 2019-11-18
        • 2011-10-03
        • 1970-01-01
        • 2015-11-19
        • 1970-01-01
        相关资源
        最近更新 更多