知识卡片
混入持久化能力的领域对象是活动记录DDD需避免
内容
有观点将混入了持久化能力的领域模型称作”充血模型”,这进一步模糊了×血模型边界。实际上Fowler把这种具有持久化能力的领域对象称为活动记录(active record),属于数据源架构模式,它封装了数据与数据访问行为,相当于把DAO与PO合并到一个对象中。采用这种模式并非不可(Ruby on Rails、jOOQ、scalikejdbc等即用它),但在DDD中需努力避免:如果每个实体都混入持久化能力,聚合的边界就失去了保护作用,资源库也就没有存在的价值了。发散:判断一个模式与DDD是否相容,一个快捷问题是”它会不会让聚合边界或资源库变得多余”。
参考来源
- 位置:《解构领域驱动设计》第19章 19.1.1(源文件:_epub-src/OEBPS/032.xhtml)
- 结论依据:原文将持久化能力的领域对象归为活动记录模式,指出其会瓦解聚合边界与资源库价值。
- 原始内容:如果每个实体都混入了持久化能力,聚合的边界就失去了保护作用,资源库也就没有存在的价值了。