4.11、DDD项目结构重构
分类: DDD领域驱动设计实战
DDD 项目结构重构
合理的项目结构是 DDD 架构的基础。本节将学习如何按照 DDD 原则重构项目结构。
本节将学习:包结构设计、分层架构、依赖方向,以及代码组织。
包结构设计
标准结构
com.example.ecommerce
├── domain # 领域层
│ ├── model # 领域模型
│ │ ├── Order.java
│ │ ├── OrderItem.java
│ │ └── Money.java
│ ├── service # 领域服务
│ │ └── OrderDomainService.java
│ └── repository # 仓储接口
│ └── OrderRepository.java
├── application # 应用层
│ ├── service # 应用服务
│ │ └── OrderApplicationService.java
│ └── dto # 数据传输对象
│ └── OrderCreateDTO.java
├── infrastructure # 基础设施层
│ ├── persistence # 持久化
│ │ ├── OrderDO.java
│ │ └── OrderMapper.java
│ ├── repository # 仓储实现
│ │ └── OrderRepositoryImpl.java
│ └── converter # 转换器
│ └── OrderConverter.java
└── presentation # 表现层
└── controller # 控制器
└── OrderController.java
分层架构
依赖方向
依赖方向:
- 表现层依赖应用层
- 应用层依赖领域层
- 基础设施层依赖领域层
- 领域层不依赖其他层
依赖方向
依赖规则
DDD 依赖规则:
- 外层依赖内层
- 领域层是核心,不依赖其他层
- 基础设施层实现领域层的接口
代码组织
组织原则
代码组织原则:
- 按领域划分包
- 按层次组织代码
- 保持包结构清晰
官方资源
- DDD 项目结构:https://www.domainlanguage.com/ddd/
本节小结
在本节中,我们学习了:
第一个是包结构设计。 按照 DDD 原则设计包结构。
第二个是分层架构。 清晰的分层架构设计。
第三个是依赖方向。 正确的依赖方向。
第四个是代码组织。 合理的代码组织方式。
这就是 DDD 项目结构重构。合理的项目结构是 DDD 架构的基础。
在下一节,我们将学习 DDD 最佳实践。