Appearance
Day 25 - DDD与六边形架构
📖 今日目标
- 理解六边形架构(Ports and Adapters)概念
- 对比六边形架构与DDD分层架构
- 学习两者的结合使用
核心概念
六边形架构
六边形架构(Hexagonal Architecture) 又称Ports and Adapters,强调:
- 业务逻辑在核心
- 通过端口与外部交互
- 适配器实现端口
关键要点
1. 六边形架构结构
┌──────────────┐
│ 驱动适配器 │
└──────┬───────┘
│
┌──────▼───────┐
│ 端口 │
└──────┬───────┘
│
┌───────────▼───────────┐
│ 核心 │
│ ┌─────────┐ ┌──────┐ │
│ │ Domain │ │ App │ │
│ └─────────┘ └──────┘ │
└───────────▲───────────┘
│
┌──────┴───────┐
│ 端口 │
└──────┬───────┘
│
┌──────▼───────┐
│ 被驱动适配器 │
└──────────────┘2. DDD与六边形的对应
| 六边形架构 | DDD |
|---|---|
| 核心 | 领域层 |
| 驱动端口 | 应用服务 |
| 被驱动端口 | 仓储、外部服务 |
| 驱动适配器 | Controller |
| 被驱动适配器 | Repository实现 |
面试考点
问题:六边形架构和DDD分层架构的区别?
答案:
视角不同:
- DDD分层:从上到下的职责分层
- 六边形:从内到外的依赖关系
关注点不同:
- DDD:业务领域建模
- 六边形:端口适配解耦
结合使用:
- 领域层在六边形核心
- 应用层作为驱动端口
- 仓储作为被驱动端口
实践思考
🎯 思考题:
用六边形架构重新设计订单模块,指出各组件对应的DDD概念。
📅 学习进度
| Day | 主题 | 状态 |
|---|---|---|
| 01-24 | 战略设计 + 战术 + 架构 | ✅ |
| 25 | DDD与六边形架构 | ✅ |
| 26 | 电商领域建模实战 | ⬜ |
| ... | ... | ... |
| 30 | 复习与总结 | ⬜ |
