文章目录
- 六边形架构
- 和分层架构的区别
- 六边形分层
- 领域层(Domain Layer)
- 端口层(Ports Layer)
- 适配器层(Adapters Layer)
六边形架构
六边形架构(Hexagonal Architecture),又称为端口和适配器架构风格,其中的“六”具体数字没有特殊的含义,仅仅表示一个“量级”的意思,六边形的定义只是方便更加形象的理解
和分层架构的区别
经典分层架构和六边形架构都是分层架构的一种,但是所发挥的作用会有些不同,经典分层架构更多的精力放在抽象的分离上,每个层的职责分的很明确,各个层的依赖关系更加抽象化,从而避免耦合的出现
而在六边形架构中,是用“组件化”的形式来避免耦合的出现,每个业务单元尽可能的最小化,然后把这些业务组件集合起来,用一个锤子把他们都拍扁,所以,在整个集合中,这些小的业务单元都是“平等的”,这种方式用一个词来概括,那就是“扁平化”
六边形分层
领域层(Domain Layer)
最里面,最纯粹的核心业务逻辑,一般不包含任何技术实现或引用
端口层(Ports Layer)
领域层之外,负责接收与用例相关的所有请求,这些请求负责在领域层中协调工作。
端口层在端口内部作为领域层的边界,在端口外部扮演了外部实体的角色
适配器层(Adapters Layer)
端口层之外,负责以某种格式接收输入、及产生输出
比如:对于 HTTP 用户请求,适配器会将转换为对领域层的调用,并将领域层传回的响应进行封送,通过HTTP传回调用客户端
在适配器层不存在领域逻辑,它的唯一职责就是在外部世界与领域层之间进行技术性的转换。适配器能够与端口的某个协议相关联并使用该端口,多个适配器可以使用同一个端口,在切换到某种新的用户界面时,可以让新界面与老界面同时使用相同的端口