DDD(6)--领域服务

本文详细介绍了领域驱动设计中的领域服务,包括其与应用服务的区别、定义、使用时机和案例分析。强调领域服务是协调领域对象完成业务逻辑的行为,而应用服务主要负责编排和转发。建议在实体和值对象无法胜任的复杂业务操作时使用领域服务,避免领域逻辑泄露到应用服务,以保持领域模型的完整性。
摘要由CSDN通过智能技术生成

1、引言

今天要学习的是领域服务。领域服务用于实现特定于某个领域的任务。领域服务并不是类似于应用服务一样,应用服务做的事协调领域之间的关系,领域服务则负责的是业务。那么我们就了解一下应用服务和领域服务之间的区别和关系。


2、什么是应用服务

应用层通过应用服务接口来暴露系统的全部功能。在应用服务的实现中,它负责编排和转发,它将要实现的功能委托给一个或多个领域对象来实现,它本身只负责处理业务用例的执行顺序以及结果的拼装。通过这样一种方式,它隐藏了领域层的复杂性及其内部实现机制。

应用层相对来说是较“薄”的一层,除了定义应用服务之外,在该层我们可以向其他系统发生基于事件的消息通知,还可以用于创建邮件以发送给客户,所以该层的主要功能就是与多个领域服务对接,将领域所需的参数组装传递,以得到结果,拼接结果展现出来。


3、什么是领域服务

什么是领域服务呢?

领域服务是用来协调领域对象完成某个操作,用来处理业务逻辑的,它本身是一个行为,所以是无状态的。状态由领域对象(具有状态和行为)保存。

当领域中的某个操作过程或转换过程不是实体或值对象的职责时,我们便应该将该操作放在一个单独的接口(这个接口并非指对外部开放的接口,而是内部调用的接口,简单理解就是service层接口)中,即领域服务。请确保该服务和通用语言时一致的;并且保证它是无状态的。

这样描述依然很抽象,那么根据这段描述我们可以总结一下。

(1)“当领域中的某个操作过程或转换过程不是实体或值对象的职责时”,我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值