首页/开发/系统分析与架构设计速查/领域服务与应用服务
需求分析与建模61 条

领域服务与应用服务

领域服务承载跨聚合的领域规则且无状态;应用服务负责编排用例:加载聚合、调用领域逻辑、提交事务、发布事件与权限校验,二者职责不应混同。

对比

维度领域服务应用服务
关注点业务规则与不变量用例编排与事务边界
状态无状态无状态
依赖领域模型与领域接口仓储、领域服务、消息与鉴权
示例转账手续费计算提交订单用例的流程编排
业务规则写进应用服务会导致多处重复;应用服务写进领域层会让模型依赖框架。

易错点

  • 应用服务退化为 CRUD 脚本,业务规则没有归属
  • 领域服务持有请求上下文或会话状态,复用与测试困难

数据来源与参考

  • Eric Evans《Domain-Driven Design》
  • Vaughn Vernon《Implementing Domain-Driven Design》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌