Skip to content

Day 23 - 聚合设计原则

📖 今日目标

  1. 理解聚合设计的核心原则
  2. 掌握聚合边界划分方法
  3. 学习聚合一致性维护

核心概念

聚合设计原则

聚合设计需要平衡:

  • 一致性:聚合内对象保持一致
  • 独立性:聚合可以独立修改
  • 简单性:聚合足够小以降低复杂度

关键要点

1. 聚合设计规则

  1. 一致性边界:聚合内所有对象在同一事务中修改
  2. 最小化聚合:只包含必要对象
  3. 跨聚合引用:使用ID而非对象引用
  4. 聚合根控制:只通过聚合根访问

2. 聚合大小选择

场景聚合大小
简单CRUD大聚合
复杂业务规则小聚合
高并发最小聚合

3. 设计示例

java
// Order聚合:只包含必要的OrderItem
public class Order extends AggregateRoot {
    private List<OrderItem> items; // 必要的
    
    // 跨聚合引用:使用ID而非对象
    private CustomerId customerId; // 不是Customer对象
}

面试考点

问题:聚合设计有哪些常见错误?

答案:

  1. 聚合过大:包含太多对象,导致并发冲突
  2. 跨聚合引用:直接引用其他聚合的实体
  3. 贫血聚合:聚合只是数据容器,无行为
  4. 设计混乱:没有明确的边界

正确做法

  • 保持聚合小而专注
  • 聚合内强一致性,聚合间最终一致性
  • 通过ID进行跨聚合引用

实践思考

🎯 思考题

分析电商订单场景,设计Order和Shipment聚合的边界。


📅 学习进度

Day主题状态
01-22战略设计 + 战术 + 架构
23聚合设计原则
24领域驱动与微服务
.........
30复习与总结

本文为DDD 30天学习计划第23天内容

📚 导航

| ← Day 22 - 上一章 | Day 24 - 下一章 →

最后更新: