28、DDD-六边形架构和四层分层的区分点
四层DDD与六边形架构的核心区别在于关注点不同:四层架构(Controller/Application/Domain/Infrastructure)强调纵向职责分层,明确各层的功能定位,依赖方向自上而下;而六边形架构通过Ports和Adapters实现横向技术解耦,核心思想是让Domain+Application不依赖具体技术实现,支持多方向接入外部系统。两者可叠加使用——四层架构解决"
·
六边形架构和四层分层的区分点
- 四层分层和六边形架构是共存的,一个是功能分层,一个是依赖反转 / 技术解耦
1️⃣ 四层 DDD(经典分层)
- 分层关注“职责”
- 四层:
- Controller 层 → 接口/呈现层
- Application 层 → 协调/用例服务
- Domain 层 → 聚合、实体、值对象、领域服务
- Infrastructure 层 → 技术实现(数据库、消息、第三方接口)
每层都有明确的职责,依赖方向自上而下。
2️⃣ 六边形架构(Hexagonal Architecture / Ports & Adapters)
- 架构关注“依赖反转 / 技术解耦”
- 核心思想:
- 核心业务(Domain + Application Service)不依赖技术实现
- 外部系统通过端口(Ports)接入
- 技术实现通过适配器(Adapters)实现端口
- 核心层 + Ports + Adapters,看起来像 “六边形”,因为可以从多个方向接入(UI、DB、消息、外部服务等),所以叫 六边形架构
核心层仍然是 DDD 的 Domain + Application,只是强调解耦技术。
3️⃣ 四层 vs 六边形对比
视角 |
关注点 |
层次/角色 |
四层 DDD |
职责分层 |
Controller / Application / Domain / Infrastructure |
六边形 |
依赖反转 / 技术解耦 |
Domain + Application (核心) / Ports (接口) / Adapters (实现) |
- 所以“四层”没变,只是“六边形”用 依赖反转 + 端口适配器 描述系统的边界和技术解耦方式。
- 你可以理解为:四层是纵向分层,六边形是横向解耦,两者可以叠加使用。
✅ 总结:
- 四层 DDD = 关注“谁做什么”
- 六边形架构 = 关注“依赖谁 / 技术如何接入”
- 两者可以同时存在:Controller / Application / Domain / Infrastructure 分层 + 六边形的 Ports & Adapters 解耦模式
更多推荐
所有评论(0)