六边形架构

六边形架构强调领域层与技术实现的分离,通过适配器模式实现内外层的交互。内层的领域层独立于外层的技术细节,如HTTP框架和数据库,确保业务逻辑的稳定性和可测试性。适配层分为驱动侧和从动侧适配器,后者通过依赖倒置减少领域层对外部的依赖。这种架构提升了系统的可维护性和关注点分离,使得核心业务逻辑更易于理解和管理。

六边形架构又称“端口和适配器模式”,是 Alistair Cockburn 提出的一种具有对称性特征的架构风格。在这种架构中,系统通过适配器的方式与外部交互,将应用服务与领域服务封装在系统内部。
六边形架构

六边形架构中边的数目其实没有意义,其实也算一种分层架构,只是分为内层和外层

  1. 内层-领域层:包含了所有的应用逻辑与规则。领域层不会直接引用技术实现细节,比如 HTTP 框架或数据库,确保在技术实现上的改动不会影响到领域层面。
  2. 外层-适配层:负责以某种格式接收输入、产生输出。这一层负责在外部世界与领域层之间进行技术性的转换。适配层又可以分为两种:接收外部输入、输出到领域层的驱动侧适配器,接收领域层输入、输出到存储的从动侧适配器。

六边形架构的核心思想

依赖倒置:

  1. 六边形架构要求:外层依赖内层,内层不能依赖外层。
  2. 对于驱动侧适配器是外部依赖内部,对于从动侧适配器是内部依赖外部,但这不符合“内层不依赖外层”的原则,需要使用“依赖倒置”方法处理,由驱动侧适配器将从动侧适配器注入应用内部。
  3. 从动侧适配器隔离了存储技术细节对领域层的影响,避免了领域层对技术细节的直接依赖。

可测试性:领域层应当可以在不依赖外部的情况下自行测试。(使用测试专用适配器或 Mock 适配器就好了)

关注点分离:

  1. 重心放在领域业务逻辑上,因为领域的业务逻辑相对更加稳定,体现应用的核心价值。
  2. 领域层不会直接引用技术实现细节,Web 框架或数据库都是可以替换的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值