知识卡片

持久化对象PO是领域模型对象扮演的角色而非独立对象

普通读书笔记卡 · 1977.l

内容

参与持久化操作的对象被称为持久化对象(persistence object,PO)。注意PO并不一定是数据对象,相反在DDD中PO往往就是领域模型对象——领域模型对象与持久化对象并不矛盾,它们只是不同场景下扮演的不同角色:在领域层不考虑持久化,故称领域模型对象;持久化时,满足ORM规范的框架操作的仍是领域模型对象,只是不关心其封装的领域行为。只要对象需持久化就会成为PO,与采用什么建模/设计方法无关,即使不用DDD也可能需要PO,区别只在由谁负责持久化。发散:把PO理解成”角色”而非”类型”,就不会再为领域对象是否要另建一套数据对象而纠结。

参考来源

- 位置:《解构领域驱动设计》第19章 19.1.2(源文件:_epub-src/OEBPS/032.xhtml) - 结论依据:原文强调PO是领域模型对象在持久化场景下扮演的角色,二者不矛盾。 - 原始内容:它们只是不同场景下扮演的不同角色……许多满足ORM规范的持久化框架操作的仍然是领域模型对象。