oop - 子域是一个类吗?(域驱动设计)
问题描述
让我们考虑一下我们使用 OOP。
子域是一个类吗?限界上下文是一组仅出于目的(理想情况下)一起使用的类?子域上可以包含一组类吗?如果是,那么有界上下文有什么区别?
例如我们有一个域:在线商店
我们将网上商店分为 2 个子域 - 客户支持和购物
我们看到这样的划分仍然很大,所以我们划分: 1. Customer、Supporter、Ticker 子域中的客户支持。现在这样的子域变成了类,分割的子域变成了有界上下文 2. 在 Customer、Cart、Payment 子域中购物。现在这样的子域变成了类,划分的子域变成了有界上下文
可能它不是子域的最佳示例,但重点是让您了解我的问题
解决方案
我会试着解释一下,你在混合东西。
子域:属于问题空间。在这里,您没有课程或任何有关编程语言的内容。你有概念、关系……当你必须解决一个问题时,你就有了那个问题的领域。如果这个问题很广泛,你可以把它分成更小的子问题,这些子问题也是问题。所以子域是子问题的域。
Bounded Context:属于解空间。在这里,您确实有类或任何其他编程语言的工件。如果您有问题,BC 是实现和解决该问题的应用程序。您对问题的领域进行建模,这样您就有了领域模型。理想情况下,BC 将 1:1 与子域相关联。
BC 只是一个类还是其中很多,这取决于您将域拆分为子域时的粒度,以及如何对子域进行建模。BC 应该有多少个班级没有任何规定。
希望我的解释有所帮助。
推荐阅读
- r - 散点图“if (counts[i] == 0) next 中的错误:参数的长度为零”
- discord.py - 如何根据谁拥有最多的经验来制作排行榜?
- php - 在 laravel 中使用两个控制器引用相同的变量
- android - 生命周期 - Android Studio
- php - Heroku [RuntimeException]执行“'cache:clear --no-warmup'”时出错
- laravel - 使用 Laravel 5 中的 --force 进行生产时,数据库卡在使用播种机迁移
- google-sheets - 如何将超过两行的单元格拆分为两个单元格,每个单元格都包含其内容?
- html - 如何使内容在 html/css 中的移动/平板电脑视图中水平滚动
- mysql - 除非我在 SQL 格式化程序上对其进行格式化,否则此查询将不起作用,但看起来相同
- java - 每 5 分钟清除一次掉落的物品