首页 > 解决方案 > 子域是一个类吗?(域驱动设计)

问题描述

让我们考虑一下我们使用 OOP。

子域是一个类吗?限界上下文是一组仅出于目的(理想情况下)一起使用的类?子域上可以包含一组类吗?如果是,那么有界上下文有什么区别?

例如我们有一个域:在线商店

我们将网上商店分为 2 个子域 - 客户支持和购物

我们看到这样的划分仍然很大,所以我们划分: 1. Customer、Supporter、Ticker 子域中的客户支持。现在这样的子域变成了类,分割的子域变成了有界上下文 2. 在 Customer、Cart、Payment 子域中购物。现在这样的子域变成了类,划分的子域变成了有界上下文

可能它不是子域的最佳示例,但重点是让您了解我的问题

标签: oopdomain-driven-design

解决方案


我会试着解释一下,你在混合东西。

  • 子域:属于问题空间。在这里,您没有课程或任何有关编程语言的内容。你有概念、关系……当你必须解决一个问题时,你就有了那个问题的领域。如果这个问题很广泛,你可以把它分成更小的子问题,这些子问题也是问题。所以子域是子问题的域。

  • Bounded Context:属于解空间。在这里,您确实有类或任何其他编程语言的工件。如果您有问题,BC 是实现和解决该问题的应用程序。您对问题的领域进行建模,这样您就有了领域模型。理想情况下,BC 将 1:1 与子域相关联。

BC 只是一个类还是其中很多,这取决于您将域拆分为子域时的粒度,以及如何对子域进行建模。BC 应该有多少个班级没有任何规定。

希望我的解释有所帮助。


推荐阅读