六边形架构和四层分层的区分点

  • 四层分层和六边形架构是共存的,一个是功能分层,一个是依赖反转 / 技术解耦

1️⃣ 四层 DDD(经典分层)

  • 分层关注“职责”
  • 四层:
    1. Controller 层 → 接口/呈现层
    2. Application 层 → 协调/用例服务
    3. Domain 层 → 聚合、实体、值对象、领域服务
    4. 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 解耦模式

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐