六边形架构
六边形架构(hexagonal)又称“端口和适配器模式”,是 Alistair Cockburn 提出的一种具有对称性特征的架构风格。在这种架构中,系统通过适配器的方式与外部交互,将应用服务与领域服务封装在系统内部。
六边形架构由以下三个组件组成:
- Ports:又可以分为输入端和输出端,是系统与其他系统交互的接口
- Adapters:与其他系统的适配层,一方面防止核心系统和领域被外部影响,即防腐;另一方面方便 api 使用
- Domain:应用和模型是程序的核心
六边形架构的核心理念是:应用通过"端口"跟外部进行交互。在传统的分层架构中很容易跨越层间的边界,把业务逻辑渗透到其它层中去。六边形架构重要的就是“边界”和“领域”。六边形架构的初衷是为了解决技术与业务系统的解耦合问题,以及技术与技术间的解耦合问题,这一架构从设计模式中来,从业务的实体服务出发,将面向接口的设计具体化的端口协议和适配器实现,服务自身实现独立性和完备性。