当前位置:编程学习 > JAVA >>

DAO模式的好处是什么?

作为一个初学者在学习的过程中知道DAO模式。但是不知道他具体的好处有哪些? --------------------编程问答-------------------- 各个层的代码分开写,思路要清晰些,而且方便维护 --------------------编程问答-------------------- DAO不是模式吧。 --------------------编程问答-------------------- 我个人的理解dao不是一个模式,甚至不只是链接数据库。

我个人将dao层理解为组件,一群支撑service的功能的基本实现,它可能是炒作数据库,也可能只是处理一个基本的文件读写,甚至只是一个排序,一个加减法。 --------------------编程问答-------------------- 个人觉得不是模式,只是JDBC中方便程序管理,使程序显得更有层次 --------------------编程问答-------------------- 调理清晰,专门用于操作持久层 --------------------编程问答-------------------- 分离开来便于管理,有层次感 --------------------编程问答-------------------- DAO使程序层次分明,把对数据库的操作都放在这一层,这样其他层的逻辑控制就变得清晰明了了。
对于实现业务逻辑而言,DAO层是基石。
而且分层后DAO的代码维护与变更等也变得清晰可理解。 --------------------编程问答-------------------- DAO对于初学者来说,可以理解为模式,但是这是一个分层模式:将项目分为3层,数据层,业务层,交互层。每层所写的内容均是分开的,主要是方便代码编写,有一些清楚的逻辑。防止初学者在写代码过程中出现思路混乱等问题。 --------------------编程问答-------------------- 相对于servlet,DAO的存在大部分是为了理清思路,代码简洁易懂 --------------------编程问答-------------------- 层次清晰,分工明确,dao就做数据访问工作,service只处理业务逻辑。
另外就是方便单元测试了,单元测试的话dao关注数据库测试,service做mock测试。
如果项目开发分工一部分关注数据库交互,一部分只关注业务逻辑,这样的分工就挺明确(虽然经常实际按功能模块分工)。
另外,区分dao和service对于代码维护,较快错误定位都有帮助。
当然,如果数据处理简单的话,并且数据访问方式不会改变,dao与service合并还是可以的,这样也可以减少不少工作量 --------------------编程问答-------------------- 只是一种对外提供一种 接口。方便以后对数据库的更改设置! --------------------编程问答--------------------
引用 3 楼 lkclkc88 的回复:
我个人的理解dao不是一个模式,甚至不只是链接数据库。

我个人将dao层理解为组件,一群支撑service的功能的基本实现,它可能是炒作数据库,也可能只是处理一个基本的文件读写,甚至只是一个排序,一个加减法。


处理文件读写,排序的之类的 ,这些不应该放在dao中,应该写一个工具类操作
--------------------编程问答-------------------- 这叫持久层,专门负责对数据库数据进行操作,方便维护。如果数据库语言或框架改变,也只需在本层修改,不影响业务层。
其他业务层需要查询修改等业务操作时,只需要调用持久层接口或方法,将参数传入便可得到想要的结果。 --------------------编程问答-------------------- 对于DAO的叫法 那么一定是分层设计 称dao层
DAO(data access objects)数据访问对象,一般包含(javabean,connection数据库链接,CRUD操作接口与实现,dao工厂)。dao层对于service层,service只关心从工厂中得到dao对象,实现针对接口编程而达到并行开发的目的,实现工厂模式而达到减少耦合的目的(不管dao的实现是jdbc技术还是其他技术实现)service只依赖工厂 --------------------编程问答-------------------- DAO模式?

这也能算是模式吗? --------------------编程问答-------------------- DAO(data access objects)  在DAO层中,只是专注于数据的操作

基本的有 数据的 增删改查 还有分页等

好处就是 将数据或者说数据载体与业务逻辑分离,当数据载体或数据结构变化的时候不会直接影响到业务逻辑也就是service层的代码

例如 当前的数据载体是 数据库(oracle也好,MYSQL也好)   新的需要到了 ,需要数据载体为文件,那么只需根据dao接口提供 文件的对应操作即可 --------------------编程问答-------------------- dao是mvc中的一层,用来直接操纵数据库,再与control层相接,这样当你更换别的数据库的时候只需改dao层中的部分代码即可,也就是持久化层。。。 --------------------编程问答-------------------- 把一群用jdbc护database的类分别放在不同监狱里,好管理,好菊爆 --------------------编程问答-------------------- 把操作数据库的SQL专门放DAO里面统一管理,比如将来需要更换数据库时候,只需要修改DAO就可以了.不然你将SQL写在service层,需要修改的时候,你就得到处找哪儿有SQL语句了. --------------------编程问答-------------------- DAO是mvc模式的数据操作层,对数据持久化 --------------------编程问答-------------------- mvc分层
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,