六边形架构

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

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

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

六边形架构的核心思想

依赖倒置:

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

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

关注点分离:

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

你可能感兴趣的:(技术,架构)