购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.6
应用服务

在DDD的整体架构中,应用服务对外面向用户界面、上下文集成和基础设施,对内则封装领域模型。本节将从应用服务的这个定位开始展开,介绍DDD中主流的应用服务分类方式。

2.6.1 应用服务的定位

从分层架构的角度来看,应用服务在分层模型中的定位如图2-28所示。

图2-28 应用服务在分层模型中的定位

从图2-28中可以看到,应用服务是领域模型的直接调用者,负责协调业务流程,同时使用资源库完成数据访问并解耦服务输出。

应用服务是DDD中唯一一个与用户界面直接交互的技术组件。另外,应用服务中涉及对多个DDD技术组件的交互和协调。但不同于领域服务,应用服务通常不包含业务,表现为一个很“薄”的技术层。

2.6.2 应用服务的分类

正如前面所介绍的,应用服务直接面向用户界面,而来自用户界面的操作按照是否修改聚合对象的状态可以分成两大类,一类是查询,另一类是命令。显然,只有命令操作才会对领域模型对象的状态造成影响。

针对这两大类操作,我们也可以构建两大类应用服务,分别是查询服务和命令服务。与之对应,在领域模型的设计上,也需要引入两大类新的技术组件,即查询对象和命令对象。查询对象和命令对象也是领域对象的组成部分,如图2-29所示。

图2-29 应用服务的分类和对象 tbQ9A/FonYfypAHCQhXBH9KDw/pyQRjWvLx3sUKwQOVjN++9uF58EsscqozsdvMp

点击中间区域
呼出菜单
上一章
目录
下一章
×