Domain driven design 有界上下文应该如何引用/使用泛型子域?

Domain driven design 有界上下文应该如何引用/使用泛型子域?,domain-driven-design,Domain Driven Design,1.我可以想出三种方法BCs可以使用/引用通用子域(GS)。哪种方式最合适以及原因: a-BC可以引用定义了GS的dll,因此该BC可以根据需要引用类型(在GS中定义)(示例:在BC中定义的方法采用在GS中定义的类型的参数) b–还是应该在共享内核中定义整个GS(该共享内核将与所有对该GS感兴趣的BC共享) c–或者应该只在共享内核中创建GS的一个子集,而GS的其余部分将驻留在BC中吗 d–还是有更好的选择 2.是GS最常在单个BC中定义的吗 谢谢任何域(核心、通用子域、支持子域)都应该在其自身

1.我可以想出三种方法BCs可以使用/引用通用子域(GS)。哪种方式最合适以及原因:

a-BC可以引用定义了GS的dll,因此该BC可以根据需要引用类型(在GS中定义)(示例:在BC中定义的方法采用在GS中定义的类型的参数)

b–还是应该在共享内核中定义整个GS(该共享内核将与所有对该GS感兴趣的BC共享)

c–或者应该只在共享内核中创建GS的一个子集,而GS的其余部分将驻留在BC中吗

d–还是有更好的选择

2.GS最常在单个BC中定义的吗

谢谢

任何域(核心、通用子域、支持子域)都应该在其自身的有界上下文中

这就是说,通用子域是通用的,因为它不满足特定的业务需求。但是,它是执行其他业务需求所必需的。因此,可以根据传入的任意参数计算税率、保单保费或客户分类的计算引擎之类的东西是合格的。它不执行任何业务功能

我认为一个通用子域不应该仅仅因为没有真正的业务功能而成为共享内核的一部分。因此,一个共享内核应该包含一个共享的业务模型

因此,一个共享内核将被多个执行特定业务功能的BC使用


我希望这有帮助?

1-“我不认为通用子域应该是共享内核的一部分”,但为什么Evans在第355页说共享内核也可以是GS?2-BCs应该如何使用GSs?通过引用定义GS的dll(如a中所解释的)或者…?这只是我处理这些事情的方式。不再有蓝皮书了。这将归结为你想如何定义这些术语。为什么有两个术语表示完全相同的事情?:)“为什么有两个术语表示完全相同的事情?”你在说什么术语?共享内核和通用子域。好吧,也许他们的意思不一样:)