我正在尝试使用Java Modeling in Color中的Party Place Thing和Role原型。
此外,我还尝试合并DDD最佳实践,现在假设我们有1个人扮演2个角色 在我的申请中说客户和患者。
客户角色用于CRM有界上下文,患者角色用于医院管理有界上下文。
我的角色类可以使用弱id访问Person详细信息,这是一个唯一可以代表Person的值对象,可以找到此方法的详细信息here。
现在,在Party Place Thing原型中,指定的职责之一是能够列出该党正在扮演的角色。
如果角色存在于不同的有界上下文中,那么如何实现这一目标呢?
理想情况下,客户和患者不应存在于与人相同的有界环境中
答案 0 :(得分:0)
根据我的理解,因为我问的问题是,一个人(党)需要了解它所扮演的所有角色的情况很少。
一个人需要保留什么样的不变量才能保留它所扮演的所有角色?
所以基本上DDD会说Person不需要知道它在不同BC中扮演的所有角色。
在上面的例子中,CRM BC中的Customer类将知道它正在扮演角色的人(Party)。
以及医院管理(HM)有界上下文中的患者类将知道它正在扮演角色的人(党)。
然而,Person类不会知道Customer类或Patient类。
事实上,基于UL(无所不在的语言),CRM BC中的Person类与HM BC中的Person类看起来非常不同。
这些来自不同上下文的Person类相互关联的方式是使用软标识符。
有关详细信息,请参阅本书here。
由于