DDD之工程结构(7)
一、序言
上一篇文章已经做了领域模型的分析,那么接下来就可以进入开发撸码的环节了,首先就是搭建一个工程架构,本文是通过六边形架构进行搭建的,为什么采用六边形架构,后续会专开一篇文章进行介绍。
二、六边形架构
1. 六边形架构的核心概念
-
业务核心(Domain / Application)
在六边形架构中,系统的核心业务逻辑位于中心,不依赖于任何外部技术(如数据库、消息队列、UI 框架等)。 -
端口(Ports)
端口是业务逻辑对外提供的接口(如应用服务接口、事件接口),或业务逻辑对外部世界的依赖接口(如存储接口)。 -
适配器(Adapters)
适配器是端口的实现,用来接入或输出外部系统。例如:-
输入适配器:REST API、gRPC、命令行接口
-
输出适配器:MySQL、Redis、Kafka、外部 API
-
形象比喻:六边形中心是“发动机”(业务逻辑),端口是“插口”,适配器是“插头”,不同外部设备(数据库、前端、第三方系统)通过各自的适配器接入,不影响发动机本身。
2. 六边形架构 vs 分层架构的区别
对比项 | 分层架构(Layered Architecture) | 六边形架构(Hexagonal A |
---|