首页 > 项目 > 当前页面

DDD(领域驱动设计)整体架构分层图

2026-06-26 NEW个对象

```

🚀 DDD(领域驱动设计)整体架构分层图

``` ┌──────────────────────────────────────────────────────────────┐
│                       Interface(接口层)                       │
│--------------------------------------------------------------│
│ Controller、REST API、RPC、MQ Consumer、OpenFeign 等 │
│ │
│ 职责:接收请求、参数校验、DTO转换 │
└──────────────────────────────────────────────────────────────┘
                ↓

┌──────────────────────────────────────────────────────────────┐
│                     Application(应用层)                    │
│--------------------------------------------------------------│
│ ApplicationService │
│ Command / Query │
│ DTO │
│ │
│ 职责: │
│ • 编排业务流程 │
│ • 调用聚合根 │
│ • 控制事务 │
│ • 发布领域事件 │
│ (不写业务规则) │
└──────────────────────────────────────────────────────────────┘
                ↓

┌──────────────────────────────────────────────────────────────┐
│                        Domain(领域层)⭐                       │
│--------------------------------------------------------------│
│ Entity(实体) │
│ Value Object(值对象) │
│ Aggregate(聚合) │
│ Aggregate Root(聚合根) │
│ Domain Service(领域服务) │
│ Repository(仓储接口) │
│ Domain Event(领域事件) │
│ │
│ 职责: │
│ • 核心业务规则 │
│ • 一致性保证 │
│ • 聚合建模 │
│ • 领域行为 │
└──────────────────────────────────────────────────────────────┘
                ↓

┌──────────────────────────────────────────────────────────────┐
│                  Infrastructure(基础设施层)                 │
│--------------------------------------------------------------│
│ RepositoryImpl │
│ MyBatis / JPA │
│ MySQL │
│ Redis │
│ RocketMQ / Kafka │
│ Elasticsearch │
│ RPC实现 │
│ 第三方SDK │
│ │
│ 职责: │
│ • 数据持久化 │
│ • 消息发送 │
│ • 调用外部系统 │
│ • 技术实现 │
└──────────────────────────────────────────────────────────────┘ ```

📌 Domain(领域层)内部结构

``` Order(Aggregate Root 聚合根)

├──────── OrderItem(Entity 实体)

├──────── Address(Value Object 值对象)

├──────── Coupon(Value Object 值对象)

├──────── Domain Service(领域服务)

└──────── Repository(仓储接口) ```

📌 一次请求执行流程

``` HTTP请求
  ↓
Controller
  ↓
ApplicationService(编排流程)
  ↓
Order(聚合根)
  ↓
OrderItem / Address / Coupon(领域对象)
  ↓
Repository(接口)
  ↓
RepositoryImpl(MyBatis)
  ↓
MySQL ```
💡 DDD一句话理解:

Interface 层负责接收请求;
Application 层负责业务流程编排;
Domain 层负责真正的业务规则,是整个系统的核心;
Infrastructure 层负责数据库、缓存、MQ、RPC 等技术实现。

整个系统围绕 聚合(Aggregate) 建模,通过 聚合根(Aggregate Root) 保证业务一致性,Repository 负责聚合的持久化,这也是 DDD 最经典、最常见的工程落地方式。
```

相关文章

NEW个对象 NEW个对象
JAVA是世界上最好的语言