4.11DDD项目结构重构

分类: 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 原则设计包结构。

第二个是分层架构。 清晰的分层架构设计。

第三个是依赖方向。 正确的依赖方向。

第四个是代码组织。 合理的代码组织方式。

这就是 DDD 项目结构重构。合理的项目结构是 DDD 架构的基础。

在下一节,我们将学习 DDD 最佳实践。