知识卡片

DAO模式的核心价值

专业/工作 · 232

内容

数据访问对象(DAO)模式的本质,是把”持久化操作”统一收拢到一组接口背后(按对象类型组 织,每个接口有可切换的具体实现),业务逻辑代码只依赖接口、不关心底层用的是Hibernate 还是JDBC还是别的什么持久化技术。这样做的直接回报体现在两个方向:一是持久化实现可以被 整体替换而不牵动业务代码;二是业务逻辑可以被替换(比如把展示层从旧Web框架迁移到新框 架)而不必重写持久化层。发散:一个衡量DAO抽象是否真正生效的简单标准是——如果业务代 码里还能看到具体持久化技术抛出的异常类型(比如Hibernate特有的异常),说明这层抽象是 漏的;真正彻底的DAO会把这些技术特定的异常统一转换成一套与实现无关的通用异常,业务代 码完全不需要知道背后换过什么引擎。

参考来源

《精通Hibernate》第13章《编写数据访问对象》