DAO再学习

关于DAO模式一直在学习,但是理解总是不够,或者可以说明我使用复制粘贴的时代已经过去,可以写使用自己的语言下自己的一些收获了。写得不好的话,请多多指教哦!!

 

开场

DAO :Data Access Objects)数据访问模式

 

先理解核心层:我们知道的插、删除和查询,都在DAO接口里得到了定义,再用一个实现这个接口的类去实现这个接口的方法,从而达到我们操作数据的目标。

                              一个类就可以实现的操作却这样拐弯的实现。这样子的好处是什么呢?列举两个例子:添加一个接口好处如下。。。。。。

(1)两个人开发两个模块,一个是完成对数据库的基本操作,一个是在调用前一个人的操作实现业务,第二个人只需要提供给前一个人一个接口,具体的前一个人实现就好了,两个人互相不用管对方的代码。

(2)如果本来这个项目用的是Oracle,现在要用sql server,只需要重写一个符合接口的实现类就可以,主程序不用动。
 

小结:经过接口定义再实现,学习到了使用这接口再实现可以降低耦合和共同开发的这两个好处。但是到这里或者刚学完基础的还是不明白,接口直接通过其子类实例化,影响就是程序在调用时必须知道具体的子类,这样却会造成修改不方便。如果更换成oracle数据库了,就必须修改所有DAO的实现类代码(这里不是很明白),但是使用DAO工厂却可以解决这个问题通过该DAO工厂的一个静态方法获得实现类的一个实例。如果要修改DAO的实现类,只需要修改DAO工厂的方法代码,而不需要修改所有操作数据库的代码。

 

继续深入:数据库连接类,此类只负责连接数据库,简单逻辑就可以省去以后每次增删查的重复连接数据操作。

 

到这里我们已经说四个内容了,DAO接口、实现DAO接口、工厂、连接数据库,接口然后实现完成了数据库操作,但是调用我们所用的是工厂区获得接口的子类的实例,接口+实现+工厂彻底完成了数据库才操作,这样我们就知道怎么去调用怎么写操作了

 

剩下的最后一个是VO了,VO=value Object,view Object,那有什么用处呢?,实例化一个vo类,就可以用set和get的方法定义或者取值,然后在调用方法的使用传入这个实例。这样的话是不是比简单的定义几个变量好多了?也符合业务的逻辑和我们的生活常识,代码更规范了

 

这种模式的分离了数据使用和数据访问的底层细节,我们可以保持上层不变的情况下,通过切换底层实现来修改数据访问具体机制,常见的一个例子就是,我们仅仅通过替换数据访问层的实现可以将我们系统部署在不同的数据库平台上。

 

暂时学习到这里,后面再补充了。。。。。。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值