Skip to content

Day 20 - 领域模型持久化

📖 今日目标

  1. 理解领域模型的持久化策略
  2. 掌握对象-关系映射(ORM)的DDD实践
  3. 学习聚合的持久化边界

核心概念

持久化策略

领域模型的持久化需要考虑:

  • 聚合作为持久化单元
  • 仓储管理聚合的生命周期
  • 避免"阻抗失配"

关键要点

1. 聚合持久化

java
// 聚合根作为持久化入口
public interface OrderRepository {
    void save(Order order);
    Optional<Order> findById(OrderId id);
}

// 保存整个聚合
orderRepository.save(order); // Order及其包含的所有对象一起保存

2. 避免贫血模型

持久化不应该导致贫血模型:

  • 领域逻辑应该存在于实体中
  • 持久化映射不应该破坏封装

3. ORM映射策略

策略说明
激活记录实体直接对应表
数据映射器独立的映射层
仓储领域层和数据层解耦

面试考点

问题:聚合持久化时需要注意什么?

答案:

  1. 持久化整个聚合:聚合内对象不应单独持久化
  2. 保持聚合边界:跨聚合的引用使用ID而非对象
  3. 避免破坏封装:持久化实现不应暴露内部结构
  4. 事务边界:一个聚合对应一个事务

实践思考

🎯 思考题

设计Order聚合的持久化,包括Order和OrderItem的映射策略。


📅 学习进度

Day主题状态
01-19战略设计 + 战术 + 架构
20领域模型持久化
21事件溯源(Event Sourcing)
.........
30复习与总结

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

📚 导航

| ← Day 19 - 上一章 | Day 21 - 下一章 →

最后更新: