architecture - 领域驱动设计 : Domain Service, 应用服务

标签 architecture domain-driven-design

有人可以通过提供一些示例来解释域服务和应用程序服务之间的区别吗?而且,如果服务是域服务,我是否会将此服务的实际实现放入域程序集中?如果是,我是否还会将存储库注入(inject)到该域服务中?一些信息确实很有帮助。

最佳答案

服务有 3 种类型:域服务应用程序服务基础设施服务

  • 域服务:封装 业务逻辑不自然 适合域对象,并且不是典型的 CRUD 操作 - 这些操作属于存储库
  • 应用程序服务:使用者 外部消费者与您交谈 系统(想想Web 服务)。如果消费者需要访问 CRUD 操作,他们会在这里暴露。
  • 基础设施服务:用于 抽象的技术问题(例如 MSMQ、电子邮件提供商等)。

将域服务与域对象一起保留是明智的——它们都专注于域逻辑。是的,您可以将存储库注入(inject)您的服务中。

应用程序服务通常会使用域服务存储库来处理外部请求。

关于architecture - 领域驱动设计 : Domain Service, 应用服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2268699/

相关文章:

android - 如何在 build.gradle 中为 android 应用程序指定支持的架构?

architecture - 如果我想在国际上部署我的软件,我应该考虑哪些架构因素?

java - 应用架构 : keeping serial connections open in java

c# - 如何在领域驱动设计中将业务逻辑添加到领域服务中?

c# - 正确的聚合根是什么?

architecture - DDD 有界上下文通信消息总线

events - symfony 域事件

java - 在 MVC 模式中将模型和操作划分为类的最佳方法是什么

mysql - 网络消息系统的数据库结构

dependency-injection - IoC 容器和领域驱动设计