api - 如何在 DDD 中使用外部服务
问题描述
我在 DDD 中有一个项目,我想知道我必须在哪一层编写服务来使用外部服务。在这种情况下,外部服务是关于要在前端显示的信息(特别是付款单)。
解决方案
这个问题有点模糊,但我猜你有一个有界上下文,你甚至有一个用于这个有界上下文的 UI。现在您想在您的 BC 的 UI 中显示来自另一个(外部)BC 的一些数据。在为此创建应用程序服务之前,问问自己:用户应该如何处理这些信息?它有助于解决您的BC的一些业务问题吗?用户是否根据他或她看到的付款单数据在您的 BC 内采取不同的操作?如果是这样,那么您可能需要在您的 BC 的域模型中显式地对这些业务规则进行建模,与其他 BC 建立某种关系,并同意一项合同以获取满足您的不变量的数据。如果您只需要在 UI 中为用户提供快捷方式/便利性,请尝试将此功能推送到 UI 级别,也许一个简单的链接到另一个上下文就足够了......不应该粗心地接触外部 BC,因为每个外部依赖项都会使您的 BC 本身的独立性和价值降低。首先尝试使用诸如反腐败层、客户供应商、顺从者等战略设计模式之一来澄清与其他上下文的通信。在此分析之后,应该更容易确定您将如何放置逻辑在哪一层对于这个外部调用。
推荐阅读
- c# - Debug.Log() 不显示任何内容
- c++ - 在类模板中使用 typedef 时出错
- java - 如何使用 Spring LDAP 模板连接到 AWS Simple AD LDAP
- docker - 在创建容器时可以指定一个命名的 docker 卷来挂载吗?在 Json API 中
- javascript - 获取移动元素的当前位置 - 鼠标点击
- php - 在laravel中创建新数据时无法按类别保存计算数据
- javascript - 如果名称更改,Javascript 返回 NaN
- java - 如果 a 将对象 A 转换为对象 B,B 是否保留 A 的 ArrayList?
- sql-server - 根据参数从数据库中检索数据
- cassandra - cassandra:它是否自动建立索引,每行列数非常多(宽列)?