文章目录

  • 六边形架构
  • 和分层架构的区别
  • 六边形分层
  • 领域层(Domain Layer)
  • 端口层(Ports Layer)
  • 适配器层(Adapters Layer)


六边形架构

六边形架构(Hexagonal Architecture),又称为端口和适配器架构风格,其中的“六”具体数字没有特殊的含义,仅仅表示一个“量级”的意思,六边形的定义只是方便更加形象的理解

和分层架构的区别

经典分层架构和六边形架构都是分层架构的一种,但是所发挥的作用会有些不同,经典分层架构更多的精力放在抽象的分离上,每个层的职责分的很明确,各个层的依赖关系更加抽象化,从而避免耦合的出现

而在六边形架构中,是用“组件化”的形式来避免耦合的出现,每个业务单元尽可能的最小化,然后把这些业务组件集合起来,用一个锤子把他们都拍扁,所以,在整个集合中,这些小的业务单元都是“平等的”,这种方式用一个词来概括,那就是“扁平化”

六边形分层

领域层(Domain Layer)

最里面,最纯粹的核心业务逻辑,一般不包含任何技术实现或引用

端口层(Ports Layer)

领域层之外,负责接收与用例相关的所有请求,这些请求负责在领域层中协调工作。
端口层在端口内部作为领域层的边界,在端口外部扮演了外部实体的角色

适配器层(Adapters Layer)

端口层之外,负责以某种格式接收输入、及产生输出

比如:对于 HTTP 用户请求,适配器会将转换为对领域层的调用,并将领域层传回的响应进行封送,通过HTTP传回调用客户端

在适配器层不存在领域逻辑,它的唯一职责就是在外部世界与领域层之间进行技术性的转换。适配器能够与端口的某个协议相关联并使用该端口,多个适配器可以使用同一个端口,在切换到某种新的用户界面时,可以让新界面与老界面同时使用相同的端口