DDD:有界上下文 - 在另一个有界上下文中引用关注点的域实体

时间:2011-07-12 11:34:54

标签: domain-driven-design entities bounded-contexts

我对如何定义有界上下文之间感到困惑,因为它们之间存在共享问题,以及如何使用域实体来表示它。

例如: 客户在客户上下文中有许多产品 公司拥有公司背景中的产品清单

因此,客户通过客户上下文进行管理,公司通过公司上下文进行管理

鉴于上下文有不同的模块。

如果我想在产品上提供公司的地址详细信息,应如何处理?

我是否在包含客户的模块中引用包含公司上下文的模块,或者在客户上下文中创建公司实体,以便在与客户交互时使用?

谢谢

2 个答案:

答案 0 :(得分:5)

您可以在不同的有界上下文中对同一实体进行不同的表示。公元前Company的公司与公元前User的公司非常不同。所有他们必须分享的是某种相关性Id。

答案 1 :(得分:1)

这也是我们在项目中接触它的方式。

对于一个有界上下文,我们使用契约作为聚合根,而在另一个有界上下文中,我们将契约用作值对象/实体

在第一个模块/ BC中,我们有一个大合同类,其中有很多行为,而在第二个模块/ BC中,我们有另一个合同类,它只包含一些私有设置器的属性。

这样就可以在SOA设计中将2 BC分离为单独的服务组合。