DDD(领域驱动设计)的分层结构树形总结

DDD(领域驱动设计)的分层结构树形总结

以下是DDD(领域驱动设计)的分层结构树形总结,包含各层概述和作用:

DDD分层架构
├── 用户接口层(User Interface Layer)
│   ├── 概述:负责与用户交互,展示信息并解释用户指令
│   └── 作用:
│       ├── 接收用户请求(REST/Web/CLI等)
│       ├── 数据格式转换(DTO转换)
│       └── 调用应用层服务
│
├── 应用层(Application Layer)
│   ├── 概述:协调领域对象完成用例
│   └── 作用:
│       ├── 事务控制
│       ├── 安全认证
│       ├── 业务流程编排
│       └── 调用领域层能力
│
├── 领域层(Domain Layer)
│   ├── 概述:包含业务核心逻辑
│   └── 作用:
│       ├── 实体(Entity):携带业务状态的领域对象
│       ├── 值对象(Value Object):不可变的业务属性集合
│       ├── 领域服务(Domain Service):无状态的业务逻辑
│       ├── 聚合根(Aggregate Root):一致性边界
│       └── 仓储接口(Repository Interface):持久化契约
│
├── 基础设施层(Infrastructure Layer)
│   ├── 概述:提供技术实现支持
│   └── 作用:
│       ├── 实现领域层仓储接口
│       ├── 提供持久化机制(DB/NoSQL)
│       ├── 消息中间件集成
│       ├── 缓存实现
│       └── 第三方服务适配
│
└── (可选) 适配器层(Adapters Layer)
    ├── 概述:技术实现的适配转换
    └── 作用:
        ├── 外部服务适配(支付/短信等)
        └── 协议转换(如gRPC到内部模型)

关键交互流程:
用户接口层 → 应用层 → 领域层 ←→ 基础设施层

架构特点:

  1. 领域层保持纯净,不依赖其他层
  2. 依赖方向:外层依赖内层
  3. 基础设施层通过依赖倒置实现技术细节

建议在实现时:

  • 使用Spring框架时通过@Controller @Service等注解明确分层
  • 领域对象应避免使用JPA注解污染(可采用防腐层)
  • 应用服务方法对应具体用例(如placeOrder()
  • 通过领域事件实现跨聚合通信

你可能感兴趣的:(DDD(领域驱动设计)的分层结构树形总结)