说说 Spring DAO 的设计思想

DAO (Data Access Object )是访问数据的对象,它不但屏蔽了不同的数据存储介质(数据库、文件或 LDAP 等),也屏蔽了具体的实现技术 。

我们只要为数据访问定义好 DAO 接口,然后使用具体技术来实现 DAO 接口,就可以平滑地切换这些不同的实现技术啦O(∩_∩)O~

业务层通过 DAO 接口来访问数据,这样就实现了业务层与 DAO 层具体持久化技术之间的解耦,比如下图中的 RoleService 通过 RoleDao 接口来访问角色数据对象:

抽象出 DAO 层有这些优点:

  • 可以很容易构造出模拟对象,方便开展单元测试。
  • 有两种切面技术可以选择,即可以使用 JDK 动态代理,又可以使用 CGLib 动态代理。
  • 最关键的是实现了业务层与 DAO 层具体持久化技术之间的解耦。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,105评论 2 89
  • 设计模式概述 在学习面向对象七大设计原则时需要注意以下几点:a) 高内聚、低耦合和单一职能的“冲突”实际上,这两者...
    彦帧阅读 9,145评论 0 14
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,896评论 18 399
  • DAY45 今天早上就一路从夏河赶车到兰州,下午坐上了回家的列车,明天早上就可以到县了,还算是心情不错,回家真好。...
    小馅儿饼看星星阅读 1,131评论 1 2
  • 瑜伽+159素食全餐14天轻断食(换食)的体验之旅,收获的一路欣喜与感受肖燕儿当真不是夸大其词,本人活生生站在你面...
    心晴伽园阅读 3,649评论 0 0