1、引言
今天要学习的是领域服务。领域服务用于实现特定于某个领域的任务。领域服务并不是类似于应用服务一样,应用服务做的事协调领域之间的关系,领域服务则负责的是业务。那么我们就了解一下应用服务和领域服务之间的区别和关系。
2、什么是应用服务
应用层通过应用服务接口来暴露系统的全部功能。在应用服务的实现中,它负责编排和转发,它将要实现的功能委托给一个或多个领域对象来实现,它本身只负责处理业务用例的执行顺序以及结果的拼装。通过这样一种方式,它隐藏了领域层的复杂性及其内部实现机制。
应用层相对来说是较“薄”的一层,除了定义应用服务之外,在该层我们可以向其他系统发生基于事件的消息通知,还可以用于创建邮件以发送给客户,所以该层的主要功能就是与多个领域服务对接,将领域所需的参数组装传递,以得到结果,拼接结果展现出来。
3、什么是领域服务
什么是领域服务呢?
领域服务是用来协调领域对象完成某个操作,用来处理业务逻辑的,它本身是一个行为,所以是无状态的。状态由领域对象(具有状态和行为)保存。
当领域中的某个操作过程或转换过程不是实体或值对象的职责时,我们便应该将该操作放在一个单独的接口(这个接口并非指对外部开放的接口,而是内部调用的接口,简单理解就是service层接口)中,即领域服务。请确保该服务和通用语言时一致的;并且保证它是无状态的。
这样描述依然很抽象,那么根据这段描述我们可以总结一下。
(1)“当领域中的某个操作过程或转换过程不是实体或值对象的职责时”,我