六边形架构首先是一种设计模式,设计的初衷是解决实际问题。当应用程序与 UI、测试环境、数据库、外部 API 等依赖项进行交互时,通常会遇到一些问题。六边形架构的作用就是解耦,把核心逻辑与不需要的依赖进行隔离。
1. 什么是六边形架构
Alistair Cockburn 博士最早提出了六边形架构这个概念。他把应用程序设想为一个六边形的封闭主体,任何与核心逻辑相关的部分都位于六边形中,其余都分散在外面。通过这种方式,测试核心逻辑变得很容易,不用担心过多的外部因素。
2. 如何实现六边形架构
六边形的内外部分通过所谓的“端口(Port)和适配器(Adapter)”进行双向交互。在应用程序中,interface 作为端口。接口的实现作为适配器,通过适配器在端口之间建立通信。对于新手小白想更轻松的学好Java提升,Java架构,web开发、大数据,数据分析,人工智能等技术,这里给大家分享系统教学资源,扩列下我尉(同英):CGMX9880 【教程/工具/方法/解疑】
3. 示例
下面举一个杂货店例子,核心业务逻辑在 GroceryStoreService
中。有一个用户正在使用杂货店服务,需要以下基本功能:
-
添加商品到购物车
-
删除指定商品
-
查看购物车中已添加的商品
Controller 层充当适配器,通过端口(interface)适配器与应用内部通信。
java/** * Controller 层充当适配器, 与应用程序的端口进行通信 */
@RestControllerpublic class GroceryStoreControllerAdapter
{