Appearance
Day 16 - DDD与分层架构
📖 今日目标
- 理解DDD经典分层架构
- 掌握各层的职责和边界
- 学习分层架构的实现
核心概念
DDD经典四层架构
┌─────────────────────────────────────┐
│ 用户接口层 │
│ (User Interface) │
├─────────────────────────────────────┤
│ 应用层 │
│ (Application) │
├─────────────────────────────────────┤
│ 领域层 │
│ (Domain) │
├─────────────────────────────────────┤
│ 基础设施层 │
│ (Infrastructure) │
└─────────────────────────────────────┘关键要点
1. 各层职责
| 层 | 职责 | 包含组件 |
|---|---|---|
| 用户接口层 | 处理用户交互、视图 | Controller、DTO |
| 应用层 | 编排、事务管理 | Application Service |
| 领域层 | 业务逻辑、领域模型 | Entity、Value Object、Domain Service |
| 基础设施层 | 技术实现、持久化 | Repository实现、外部服务 |
2. 依赖方向
- 只允许外层依赖内层
- 领域层是最核心,不依赖任何外部层
- 基础设施层实现领域层定义的接口
3. 示例结构
com.example.order
├── userinterface (用户接口层)
├── application (应用层)
├── domain (领域层)
│ ├── model
│ ├── service
│ └── repository
└── infrastructure (基础设施层)
└── persistence面试考点
问题:DDD分层架构的核心原则是什么?
答案:
- 依赖单向:只允许外层依赖内层
- 领域核心:领域层是最核心,不依赖任何外部
- 接口分离:基础设施层实现领域层定义的接口
- 关注点分离:每层只关注自己的职责
核心目的是保护领域层,让业务逻辑不被技术细节污染。
实践思考
🎯 思考题:
在DDD分层中,Application Service和Domain Service的区别是什么?
📅 学习进度
| Day | 主题 | 状态 |
|---|---|---|
| 01-15 | 战略设计 + 战术基础 | ✅ |
| 16 | DDD与分层架构 | ✅ |
| 17 | DDD与Clean Architecture | ⬜ |
| ... | ... | ... |
| 30 | 复习与总结 | ⬜ |
