「这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战」
昨天看了传统的DDD架构,今天接着往下看。接着传统DDD架构的是清洁架构,它又给我们带来了什么。
清洁架构
清洁架构是Robert C.Martin提出的一种架构,其目的是使我们的架构清晰整洁。清洁架构认为,优秀的架构应该只包含单向依赖,这样能在逻辑上形成上下级调用的关系,如下图:
从上图我们可以清晰的看出,系统的调用是由外而内进行的,内部的实体不能调用外层的用例。外部对我们系统只能通过适配器进行调用。适配器对外部的请求进行转换,封装成内部所能识别的内容,然后再进行内部调用。这样,就算外部是不同的应用类型,如:web、android抑或是pc客户端,也能用重用实体的逻辑,做到全平台逻辑的统一。
实体
业务实体是我们的核心单元,不与其它基础设施产生直接的交互,就算将我们的业务实体扣出来放到其它不同基础设施构成的运行环境,也不会对我们的业务造成冲击。
Use Cases
可以简单理解为传统web mvc开发的Service层,作为业务实体的协调者,协调多个业务对象之间的交互,和业务实体共同完成业务。
接口适配层
如之前我们所讲,这一层是用来对外部需求参数进行转换的。不同的平台可以有不同的适配器,但是最终到达内部的是业务实体所要求的格式数据。这一层对外部请求进行封装,让我们的业务实体可以不关系外部的请求格式。
框架和驱动程序
也叫基础设施层,作为我们程序的基础载体存在,如:操作系统、DB、MQ等具体实现,业务实体应关心具体的业务逻辑,这些基础设施不应由业务对象操心。