有界上下文共享相同的聚合

2024-03-27

DDD 公开了有界上下文、领域模型、聚合……但我经常错过业务规则的关键点。我想知道业务规则如何集成到这种方法中。这是一个例子:

假设您在一家信贷公司中有 2 个有界上下文。一项用于追偿债务,另一项用于提前退款。这些背景嵌入了真正的业务特性。从概念的角度来看,我认为这些有界上下文应该分别嵌入公共模型部分和类似的领域模型实体(3 或 4 个会计实体的图)。即使它们各自的模型嵌入了一个公共子模型(我们不计划它可以改变),适用于这些子模型的业务规则也是不同的。 DebtRecoveryService 确保规则得到正确应用,另一个 EarlyFundsService 也通过特定的会计规则执行相同的操作。

  • 如果不同的业务规则适用于它们(在数学和各自的行为方面?),那么这个子模型是否应该由另一个专用的有界上下文嵌入并“服务于其他人”。
  • 什么定义了聚合,它只是模型的一部分吗?
  • 特定的业务规则是否定义了特定的聚合?

您是否认为聚合应该仅考虑它所代表的实体图,并由其他有界上下文“重用”?这是 CQRS 的好案例吗?

Thanks,


看起来很清楚,根据 DDD 你should当模型被不同的有界域共享时,会复制模型。

此外,服务模式鼓励不要在服务的两侧使用相同的对象。

然而。如果您使用 POCO 风格的数据对象并将业务逻辑封装在服务中,而不是经典的 OO 对象图方法,那么您本质上是在使用多种模式来保护自己免受同一问题的影响。

在这种情况下,如果该模型的领域含义随着时间的推移在有界上下文之间发生变化,那么拥有共享通用模型所带来的代码重用的好处可能会超过潜在的技术债务。

本质上,这可能发生在有界上下文中。我觉得你的问题可以归结为“我选择了正确的有界上下文吗?”这当然是主观的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有界上下文共享相同的聚合 的相关文章

随机推荐

  • DataGridView 中明显的内存泄漏

    如何强制 DataGridView 释放其对绑定 DataSet 的引用 我们有一个相当大的数据集显示在 DataGridView 中 并注意到 DataGridView 关闭后资源没有被释放 如果用户重复查看此报告 他们最终会收到内存不足
  • 我在 intellij 中的 jar 资源文件是只读的,我需要编辑它们

    我已经尝试了几个小时来编辑我用作库的 jar 中的 java 文件 但没有成功 我已将资源标记为内容根和源根 但我仍然无法编辑 jar 中的代码 该项目编译并运行正确 但我需要对资源文件进行调整 但不能 我尝试了所有我能想到的项目结构 难道
  • kotlin如何通过delegate使用this来实例化viewmodel

    我正在阅读 google android 架构示例并遇到了这个 有人可以向我解释这个代表是如何工作的吗 private val viewModel by viewModels
  • 如何在C++中“返回一个对象”?

    我知道这个标题听起来很熟悉 因为有很多类似的问题 但我要求问题的不同方面 我知道将东西放在堆栈上和将它们放在堆上之间的区别 在Java中我总是可以返回对 本地 对象的引用 public Thing calculateThing Thing
  • Mono 可以在 rdlc 中创建/运行报告吗?

    我从未使用过 mono 很好奇 mono 是否可以创建 运行 rdlc 报告 我正在寻找实现的是一个单声道 asp net mvc 应用程序 用于使用 rdlc 创建报告并导出为 pdf 单声道可以吗 有一些开源项目尝试在 NET 中实现
  • twitter 没有重定向到 android 应用程序中的回调 url

    我的目标是允许使用 twitter4j 登录 Twitter 我用这个作为参考 https github com Sheikh Aman Android Samples blob master 1 20Sign inWithTwitterT
  • Jsoup:忽略 SSL 错误

    我正在尝试下载https www deviantart com https www deviantart com使用 Jsoup v1 10 3 以及validateTLSCertificates false Java 8 已安装 Unli
  • 使用 OpenTok 暂停视频通话

    我一直在研究 webRTC 平台 发现 OpenTok 似乎提供了最可定制的功能 在深入研究之前 我想确保它可以满足一项关键要求 在两个用户 A 和 B 之间的 1 1 视频通话期间 我希望其中一个用户 让我们与用户 A 一起 能够接收来自
  • Django - 无法获取 highchart 来显示数据

    我尝试按照以下解决方案在 Highchart 的帮助下显示图表 通过 JSON 将 Django 数据库查询集传递到 Highcharts https stackoverflow com questions 27810087 passing
  • 在 Tensorflow 中训练简单模型 GPU 比 CPU 慢

    我在 Tensorflow 中设置了一个简单的线性回归问题 并在 1 13 1 中使用 Tensorflow CPU 和 GPU 创建了简单的 conda 环境 在 NVIDIA Quadro P600 的后端使用 CUDA 10 0 然而
  • 以编程方式与证书颁发机构通信

    我以编程方式处理证书并与证书颁发机构进行通信 我一直在 Windows 2008R2 上使用 C 处理 CertClient 和 CertEnroll COM 对象 我可以生成请求并从 CA 获取证书 我从这个例子开始 http blogs
  • 为什么 Vim 会在文件末尾添加新行?

    我经常使用 Wordpress 有时我会临时更改 Wordpress 核心文件 以便了解正在发生的情况 尤其是在调试时 今天我有一个小小的惊喜 当我准备将更改提交到 git 存储库时 我注意到git status正在将 WordPress
  • AggregateItemReader 的位置和用例

    附录在这里 http docs spring io spring batch trunk reference html listOfReadersAndWriters html列出读者AggregateItemReader但我无法在任何 S
  • 在 Pyspark 中添加 python 外部库

    我正在使用 pyspark 1 6 我想使用 databricks spark csv 库 为此我尝试了不同的方法但没有成功 1 我尝试添加一个我下载的jarhttps spark packages org package databric
  • 没有足够的副本可用于一致性为 1 的查询(需要 1 个副本,但只有 0 个活动副本)

    我有一个包含三个节点的 Cassandra 集群 其中两个节点已启动 它们都在同一个 DC 中 当我的 Java 应用程序写入集群时 我的应用程序中出现错误 该错误似乎是由 Cassandra 的某些问题引起的 原因 com datasta
  • 初始化类成员向量的大小失败

    我是 C 新手 遇到了这个问题 这是我的代码 class A std vector
  • 在为项目构建不同的 Eclipse CDT 共享资源文件夹中

    我有一组 Eclipse c 项目 它们都引用公共共享代码库 同一文件夹中的 c 和 h 文件的混合 但会根据每个项目以不同的方式构建该代码 可以在每个项目内编辑公共代码库 但这些编辑将是在所有项目中进行的修复 除了通过定义的构建选项之外
  • Flask 结构——无法从 __init__.py 导入应用程序

    我是 python 的初学者 并且在使用设置应用程序的结构时遇到了很多麻烦 init py即使在搜索了几个教程之后 目前 我当前的目录结构如下所示 parent myapp init py views py virtualenv 以前 我有
  • Java 8 Lambda,过滤HashMap,无法解析方法

    我对 Java 8 的新功能有点陌生 我正在学习如何按条目过滤地图 我看过本教程 http www leveluplunch com java examples filter map by value and 这个帖子 https stac
  • 有界上下文共享相同的聚合

    DDD 公开了有界上下文 领域模型 聚合 但我经常错过业务规则的关键点 我想知道业务规则如何集成到这种方法中 这是一个例子 假设您在一家信贷公司中有 2 个有界上下文 一项用于追偿债务 另一项用于提前退款 这些背景嵌入了真正的业务特性 从概