域驱动设计中的子域和有界上下文是否相同?

时间:2015-08-18 10:30:29

标签: domain-driven-design

我知道子域存在于问题空间中并对其进行细化以分解复杂性,而有界上下文存在于解决方案空间中,并在上下文中表示为显式域模型。但我仍然困惑为什么我们不能将子域作为有界上下文?或者子域内是否存在有界上下文?

1 个答案:

答案 0 :(得分:0)

如果您真正了解问题空间和解决方案空间之间的区别,就像您在问题中所说的那样,我想知道您为什么要这样做。

“但我仍然感到困惑,为什么我们不能将子域名作为有界上下文?”

这就像说“为什么我们不能将问题作为答案?”。

子域是较大域的问题,有界上下文是解决方案空间,在实践中该问题将得到解决。您应该努力在子域和有界上下文之间进行1对1的对齐,就像理想情况下在问题和答案之间进行1对1对齐一样。

然而,作为开发人员,我们需要务实,并且在实践中总是有可能单个有界上下文涵盖多个子域。但是,这会增加术语超载的风险,因为多个子域将通过相同的普遍存在的语言(UL)表达。

为了说清楚,UL,代码,选择的存储机制等都存在于有限的环境中:这些都是解决方案的一部分。