论坛首页 入门技术论坛

在设计DAO模式时为什么要写一个接口

浏览 5525 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-02-29  
DAO
为什么在用DAO设计模式设计时,要写一个接口呢?
实现它的类都已经实现了它的方法,在调用时直接实类化这个类,然后调用这个方法不就行了啊

刚刚研究,请指点
谢谢!!!
   发表时间:2008-02-29  
spring的类不是new出来的....
是通过接口用反射构造出来的.
0 请登录后投票
   发表时间:2008-02-29  
便于解耦........
0 请登录后投票
   发表时间:2008-02-29  
weirihai 写道
为什么在用DAO设计模式设计时,要写一个接口呢?
实现它的类都已经实现了它的方法,在调用时直接实类化这个类,然后调用这个方法不就行了啊

刚刚研究,请指点
谢谢!!!


也可以说扩展性好。
比如现在你的数据源是RDB,DAO中的逻辑是基于RDB的。
调用DAO方法的代码也许这样写:
IDAO dao = [Spring].getDao();
dao.update("updateUserName", para);
以后有可能你还要实现数据源是LDAP或其他,
这时候你可以实现IDAO接口,在实现类中写连接LDAP数据源的逻辑,
那么你要做的只是在Spring的配置文件中,把配置的RDB的DAO实现类修改成LDAP的DAO实现类即可。
都不用修改代码,为什么不做个接口呢,
这也是“面向接口编成”的魅力吧
0 请登录后投票
   发表时间:2008-03-28  
neuzhujf 写道
weirihai 写道
为什么在用DAO设计模式设计时,要写一个接口呢?
实现它的类都已经实现了它的方法,在调用时直接实类化这个类,然后调用这个方法不就行了啊

刚刚研究,请指点
谢谢!!!


也可以说扩展性好。
比如现在你的数据源是RDB,DAO中的逻辑是基于RDB的。
调用DAO方法的代码也许这样写:
IDAO dao = [Spring].getDao();
dao.update("updateUserName", para);
以后有可能你还要实现数据源是LDAP或其他,
这时候你可以实现IDAO接口,在实现类中写连接LDAP数据源的逻辑,
那么你要做的只是在Spring的配置文件中,把配置的RDB的DAO实现类修改成LDAP的DAO实现类即可。
都不用修改代码,为什么不做个接口呢,
这也是“面向接口编成”的魅力吧



呵呵/  学习了 .

0 请登录后投票
   发表时间:2008-03-28  
neuzhujf 写道
weirihai 写道
为什么在用DAO设计模式设计时,要写一个接口呢?
实现它的类都已经实现了它的方法,在调用时直接实类化这个类,然后调用这个方法不就行了啊

刚刚研究,请指点
谢谢!!!


也可以说扩展性好。
比如现在你的数据源是RDB,DAO中的逻辑是基于RDB的。
调用DAO方法的代码也许这样写:
IDAO dao = [Spring].getDao();
dao.update("updateUserName", para);
以后有可能你还要实现数据源是LDAP或其他,
这时候你可以实现IDAO接口,在实现类中写连接LDAP数据源的逻辑,
那么你要做的只是在Spring的配置文件中,把配置的RDB的DAO实现类修改成LDAP的DAO实现类即可。
都不用修改代码,为什么不做个接口呢,
这也是“面向接口编成”的魅力吧

学习了...
0 请登录后投票
   发表时间:2008-03-28  
都是面向接口的编程吧
0 请登录后投票
   发表时间:2008-03-28  
都是面向接口的编程吧
0 请登录后投票
   发表时间:2008-03-28  
面向接口的编程,便于修改扩展
0 请登录后投票
   发表时间:2008-03-28  
不要管什么规则,楼主如果觉得接口不适合你,直接用类好了,面向接口并不是不变法则
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics