DDD 中应用层是否应该依赖于基础设施层?

Gea*_*any 5 domain-driven-design

我读到应用程序服务用于编排,它们处理应用程序的工作流程。

例如:从用户 A 向用户 B 转账后,系统必须发送电子邮件。

因此应用服务调用领域实体、领域服务来处理领域逻辑。然后调用基础设施发送电子邮件。那么应用层依赖于领域层和基础设施层。是否违反DDD?DDD 中应用层是否应该依赖于基础设施层?

Voi*_*son 5

DDD 中应用层是否应该依赖于基础设施层?

我相信你要找的模式就是“服务提供者”。

应用程序组件将定义它需要满足的接口/API/契约来履行自己的职责

基础设施组件提供了该接口的实现

组合根创建基础设施组件,然后使用它来创建应用程序组件。

在应用程序的自动化测试中,您可能会包含域组件,但用测试替身替换基础架构组件。