《DDD实战课》读书笔记四(几种常见的架构及对比)

架构介绍

整洁架构(洋葱架构)

架构图

整洁架构

架构说明

  • 整洁架构的最主要原则是依赖原则,它定义了各层的依赖关系,越往里依赖越低,代码级别越高,越是核心能力。外圆代码只能指向内圆,内圆不需要知道外圆的任何情况。
  • 领域模型实现领域内核心业务逻辑,它封装了企业级的业务规则。
  • 领域服务实现涉及多个实体的复杂业务逻辑。
  • 应用服务实现与用户操作相关的服务组合或编排,包含特定业务流程规则。
  • 最外层提供适配能力,适配包含主动和被动两种适配。主动适配是实现外部用户、网页、批处理或自动化测试等内层业务逻辑访问适配。被动适配主要是实现核心业务逻辑对基础资源访问适配,如数据库、缓存、文件系统和消息中间件等。
  • 红圈内的领域模型、领域服务和应用服务一起组成软件核心业务能力。

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

架构图

六边形架构

架构说明

  • 六边形架构核心理念是:应用是通过接口与外部进行交互的。
  • 红圈内的核心业务与外部业务完全隔离,仅通过适配器进行交互。六边形的依赖关系跟整洁架构一样都是由外向内依赖。
  • 六边形架构将系统分为内六边形和外六边形两层
  • 内六边形实现核心业务逻辑
  • 外六边形完成外部应用、驱动和基础资源等的交互和访问,对前端应用以api主动适配方式提供服务,对基础资源以依赖倒置被动适配方式实现资源访问。
  • 六边形架构的一个端口可能对应多个外部系统,不同外部系统可能会使用不同的适配器,由适配器负责协议转换。这样应用程序能够以一致的方式被用户、程序、自动化测试和批处理脚本使用。

三种架构的对比与分析

在这里插入图片描述

  • 红色框内主要实现核心业务逻辑,但核心业务逻辑有差异,有的业务逻辑属于领域模型,有的属于面向用户的用例和流程编排能力。按照功能差异我们在三种架构中划分了应用层和领域层来承担不同的业务逻辑。
  • 这三种框架都考虑了前端需求的变与领域模型的不变。不管前端如何变化核心领域逻辑基本不会大变,所以领域模型相对稳定,而用例和流程(应用层)则随外部应用需求而随时调整。
  • 2003年DDD诞生,是一种上下层的关系,六边形是2005年提出的将上下层演变为内外层关系,内部代表应用的业务逻辑,外部代表应用的驱动逻辑。但是六边形的内层的业务逻辑还没有明显的领域模型的概念。2008年洋葱架构出现,六边形架构师洋葱架构的一个超集,洋葱架构与六边形架构有相同的思路,都是通过编写适配器代码将应用逻辑从基础设施的依赖中解放出来,避免基础设施代码渗透到逻辑中。洋葱在业务逻辑中加入领域驱动设计的分层概念,如用户接口层、应用层、领域层和基础层,另外明确了外层依赖内层,内层对外层无感的依赖关系。虽然三者在表达形式上存在差异,但核心职责就是要做到核心业务逻辑和技术实现细节的分离和解耦。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值