news 2026/7/17 22:01:51

DDD里的领域服务,到底什么时候该用?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DDD里的领域服务,到底什么时候该用?

做DDD的项目,迟早都会遇到一个问题:聚合根放不下的逻辑,到底往哪放?

有人说领域服务是可选的,聚合根本身就能承载大部分业务逻辑,领域服务只是补充。

看起来是对的,其实错的离谱。但凡真正做过复杂业务的人都会发现,领域服务一定会出现。

因为聚合根是封闭的计算单元,只负责维护自己的状态,不碰数据库,不调外部接口。

但现实中的很多业务规则,都需要依赖数据库、其他微服务或者外部系统的数据才能完成。这些职责显然不应该放到聚合根里面。

那放应用服务里行不行?项目初期当然可以。

但随着业务越来越复杂,应用服务里的业务规则会越来越多,最后一个接口几百行代码,应用服务越来越胖,领域模型反而越来越薄,DDD最终又退化成了传统三层架构。

所以,当应用服务开始承担越来越多领域规则的时候,就应该把这些稳定的业务规则下沉到领域服务。

领域服务不是可选项,而是DDD真正落地以后必然会出现的一层。

在我参与的项目里,领域服务主要承担三类职责。

第一,依赖外部数据才能完成的领域计算。

第二,聚合根放不下的批量业务规则。

第三,无法归属于某一个聚合根的领域规则。

这些都属于业务规则,本质上应该留在领域层,而不是应用层。

另外还有一条原则,必须坚守的,就是领域服务之间禁止互相调用。

一旦允许领域服务互调,今天A调B,明天B调C,领域层很快就会变成一张蜘蛛网,最后和传统三层架构里Service相互调用没有区别。

跨聚合、跨模块的协调,应该交给应用服务。应用服务负责流程编排,领域服务负责业务规则,两者职责不要混在一起。

那领域服务里能不能调用其他微服务?

答案是:能,但必须通过防腐层。

领域服务不能直接依赖Dubbo、Feign这些RPC框架,而是应该依赖Domain层定义的Gateway接口,由基础设施层负责具体实现。这样领域层始终依赖抽象,而不是依赖技术框架。

小结:
领域服务存在的意义,不是为了让DDD看起来更规范,而是为了给那些放不进聚合根、又属于领域规则的逻辑,找到一个真正合适的归宿。

我一直坚持两个原则:

1,领域服务必须存在。

2,领域服务之间禁止互相调用。

当你发现应用服务越来越臃肿、领域模型越来越薄的时候,通常不是DDD有问题,而是你的领域服务,该出现了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/17 22:00:50

Ubuntu定制安装镜像制作指南:Cubic与chroot方法详解

1. 项目概述:为什么要定制Ubuntu安装镜像? 作为Linux系统管理员,我经常需要为不同团队部署Ubuntu系统。标准安装镜像虽然通用,但存在三个明显痛点:首次安装后需要大量手动配置(时区、语言包、基础软件等&a…

作者头像 李华
网站建设 2026/7/17 22:00:17

Windows自动更新管理与禁用方案详解

1. Windows自动更新的双刃剑效应Windows 10自动更新机制自2015年推出以来,就像个尽职尽责的管家,默默在后台为系统打补丁、修漏洞。但这位管家有时过于热情——在你准备重要演示时突然弹出更新提示,或是占用带宽导致网络卡顿,甚至…

作者头像 李华
网站建设 2026/7/17 21:59:05

Embedding与向量:RAG为啥能“搜意思“而不只是搜关键词

先讲个例子。 小坤搭了个公司知识库,把《员工手册》全传进去了。他搜"出差住宿标准",结果一片空白;换成手册里的原话"差旅费报销规定",立刻出答案。 他纳闷:这不都是一回事吗?AI不是…

作者头像 李华
网站建设 2026/7/17 21:57:31

PSP通过RS232转TTL实现串口通信:硬件连接与调试指南

这次我们来看一个经典的技术话题:PSP主机通过RS232转TTL进行串口通信。对于喜欢折腾老设备的技术爱好者来说,这种硬件接口转换不仅实用,还能让你更深入地理解嵌入式通信原理。 PSP作为一款经典的掌上游戏机,其硬件接口设计相对封…

作者头像 李华
网站建设 2026/7/17 21:51:52

聊天功能整体架构

1 以聊天功能作为基础,如果要其他功能,都需要打开聊天服务---------------而不是另外写服务,因为websocket如果在一个手机上面建立2个可能会出现问题。所以可能一个手机上面只能有一个websocket连接。但是其实如果你给2个id,那么也…

作者头像 李华
网站建设 2026/7/17 21:50:31

人形机器人量产节拍:30分钟一台的工程实现路径

1. 这不是科幻片场,而是产线实测现场:30分钟一台人形机器人意味着什么?“30分钟一台人形机器人”——这句话刚在行业群里刷出来时,我正蹲在东莞一家协作机器人代工厂的装配线旁,手里还捏着刚拧紧的髋关节谐波减速器外壳…

作者头像 李华