我对如何定义有界上下文之间感到困惑,因为它们之间存在共享问题,以及如何使用域实体来表示它。
例如: 客户在客户上下文中有许多产品 公司拥有公司背景中的产品清单
因此,客户通过客户上下文进行管理,公司通过公司上下文进行管理
鉴于上下文有不同的模块。
如果我想在产品上提供公司的地址详细信息,应如何处理?
我是否在包含客户的模块中引用包含公司上下文的模块,或者在客户上下文中创建公司实体,以便在与客户交互时使用?
谢谢
答案 0 :(得分:5)
您可以在不同的有界上下文中对同一实体进行不同的表示。公元前Company
的公司与公元前User
的公司非常不同。所有他们必须分享的是某种相关性Id。
答案 1 :(得分:1)
这也是我们在项目中接触它的方式。
对于一个有界上下文,我们使用契约作为聚合根,而在另一个有界上下文中,我们将契约用作值对象/实体
在第一个模块/ BC中,我们有一个大合同类,其中有很多行为,而在第二个模块/ BC中,我们有另一个合同类,它只包含一些私有设置器的属性。
这样就可以在SOA设计中将2 BC分离为单独的服务组合。