随笔

第二节 DDD架构

2021-12-29  本文已影响0人  农民工进城

DDD 分层架构就是优化后的四层架构。 从上到下依次是:用户接口层、应用层、领域层和基础层。

2.1 DDD分层架构:

2.1.1 DDD封层架构
image.png

DDD 分层架构有一个重要的原则:每层只能与位于其下方的层发生耦合。

2.1.2 DDD架构与MVC架构

DDD 分层架构中的要素其实和三层架构类似,只是在 DDD 分层架构中,这些要素被重新归类,重新划分了层,确定了层与层之间的交互规则和职责边界

image.png

2.2 整洁架构(洋葱架构)

在整洁架构里,同心圆代表应用软件的不同部分,从里到外依次是领域模型、领域服务、应用服务和最外围的容易变化的内容,比如用户界面和基础设施。
整洁架构最主要的原则是依赖原则,它定义了各层的依赖关系,越往里依赖越低,代码级别越高,越是核心能力。外圆代码依赖只能指向内圆,内圆不需要知道外圆的任何情况。


image.png

在洋葱架构中,各层的职能划分:

2.4 CQRS架构(更改查询隔离架构)

CQRS — Command Query Responsibility Segregation,故名思义是将 command 与 query 分离的一种模式。
command :命令则是对会引起数据发生变化操作的总称,即我们常说的新增,更新,删除这些操作,都是命令。
Query:查询则和字面意思一样,即不会对数据产生变化的操作,只是按照某些条件查找数据。


适用场景:
缺点

2.4 六边形架构(端口适配器架构)

六边形架构的核心理念是:应用是通过端口与外部进行交互的

下图的红圈内的核心业务逻辑(应用程序和领域模型)与外部资源(包括 APP、Web 应用以及数据库资源等)完全隔离,仅通过适配器进行交互。它解决了业务逻辑与用户界面的代码交错问题,很好地实现了前后端分离。六边形架构各层的依赖关系与整洁架构一样,都是由外向内依赖。


image.png

六边形架构将系统分为内六边形和外六边形两层,这两层的职能划分如下:红圈内的六边形实现应用的核心业务逻辑;外六边形完成外部应用、驱动和基础资源等的交互和访问,对前端应用以 API 主动适配的方式提供服务,对基础资源以依赖倒置被动适配的方式实现资源访问。六边形架构的一个端口可能对应多个外部系统,不同的外部系统也可能会使用不同的适配器,由适配器负责协议转换。这就使得应用程序能够以一致的方式被用户、程序、自动化测试和批处理脚本使用。

总结:

image.png

这三种架构模型的设计思想微服务架构高内聚低耦合原则的完美体现,而它们身上闪耀的正是以领域模型为中心的设计思想,将核心业务逻辑与外部应用、基础资源进行隔离。

上一篇 下一篇

猜你喜欢

热点阅读