具有多个有界上下文和项目结构的子域

时间:2013-05-14 02:12:28

标签: domain-driven-design

我已经开始阅读蓝皮书的几个章节并阅读了红皮书(实现领域驱动设计)的前三章。我有两个问题:

(1)子域可以有多个有界上下文吗?我特别关注实现域驱动设计书中的示例,其中存在预测子域与库存耦合/重叠的类型。 (如果你还没有读过这本书,那就道歉了,但是这个想法是两个有界背景之间存在很强的重叠)。

(2)如何组织我的项目解决方案结构(我正在使用.net),是否有任何我可以看到的真实世界项目的例子?我应该创建文件夹,即子域,核心域,通用域,然后指定其下的模块吗?我正在努力研究如何最好地定义我的结构,以便它显示洋葱/六角形层。

提前致谢。

1 个答案:

答案 0 :(得分:1)

  1. 是。域由多个子域组成(如果它足够复杂),并且每个子域实际上是一组有界上下文。从应用程序的角度来看,域本身可以被视为有界上下文(BC)。 BC并不意味着它包含一个独特的模型,而是一个商业概念的特定表示。因此,您可以在多个BC中定义Book定义,但在每个定义中,定义略有不同,从完整详细信息到id。因此,库存中的书籍与销售书籍不同。重要的是BC了解一个概念。 结果模型仅在BC中有效,尽管它可以与另一个BC的模型具有相同的名称。但这就是命名空间的用途。

  2. 没有一个配方,每个人都按照他们认为合适的方式构建他们的项目。但大多数情况下,您至少会拥有一个Domain项目和UI,Persistence,Infrastrcuture项目。我认为最好的结构取决于应用程序和开发人员的想法,所以我做事的方式可能不是最适合你的方式。简而言之,构建应用程序,因为它对您有意义。

相关问题