domain-driven-design - DDD : Where to put implementation of domain services

标签 domain-driven-design project-structure

领域服务实现应该驻留在 DDD 项目结构中的什么位置?
如果我们有 IDomainInterfaceDomainInterface实现,应该 DomainInterface实现驻留在解决方案/项目的基础设施或核心/领域部分?

最佳答案

域服务接口(interface)及其实现可能驻留在域层中。但是,如果域服务实现依赖于基础设施问题,那么通过应用依赖倒置原则,实现将存在于基础设施层,同时依赖于域中定义的接口(interface)。

大多数领域服务将不需要依赖于基础设施问题,并将用于对在现有聚合中找不到自然归宿的用例进行建模,但一些领域服务会。

存储库是最常见的领域服务,需要基础设施知识,因此您会发现它们的实现存在于基础设施层,但还有其他示例。

例如,在 IDDD 的身份和访问有界上下文中,EncryptionService接口(interface)位于域中,而 MD5EncryptionService具体实现存在于基础设施中。

关于domain-driven-design - DDD : Where to put implementation of domain services,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39610987/

相关文章:

python - 我如何复制 PyCharm 在命令行运行我的 Python 3.4 项目的方式?

domain-driven-design - Repositories 如何适应 CQRS?

domain-driven-design - DDD 子实体验证

php - 与 Symfony 表单的关注点分离

python - 在 Django 项目中构建模板的最佳实践是什么?

java - 将 Maven 项目转换为 Gradle

ios - 是否可以让多个应用程序用完一个 iOS .app 文件?

domain-driven-design - 域建模: Neither an Entity nor a Value Object

domain-driven-design - DDD - 存储库上的实体 DTO 表示

Maven提示父相对路径