★★★★★关于数据库访问DAO中Factory的困惑★★★★★★★ 用Factory创建DAO属于工厂模式。Factory中的方法可以让你在不了解DAOImpl的情况下,创建DAOImpl类。根据方法的不同还可以选择不同的DAOImpl,但是你完全不必知道这些DAOImpl如何被初始化,对于使用的人最为方便。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DAO模式在你目前的使用中好处并不大。因为DAO是工厂模式,所以他只有在多条产品线时才会发挥作用。比如你开发的产品针对多个数据库,你只需要从DAO工厂得到DAO,而在工厂中决定到底是ORACLEDAO还是SYBASEDAO。 但是如果只用DAO和DAOImpl照样可以不必了解DAOImpl的情况下创建DAOImpl类啊?? pbMaster(编程无境界) 的话我懂了,只是对于一个数据库为什么照样很多人用DAO呢,如果他真的没有什么过人之处,他就不会如此流行了!!!遍地可见啊! 现在factory一词,正在被spring这个框架所吞噬。如果工厂产生的实例,是在工厂内部写死的话,就没有意义了。 对DAO没有用过所以也只有学习的份了 大部分的设计模式都是为了程序比较方便地被维护。如果你的程序不变,那么你可以不用模式!这里的DAO还有另一个用处,比如你现在用CMP作持久化,但如果你发现CMP不行,要该为HIBERNATE。如果你没有用DAO模式,你必须直接改DAOIMPL。而如果你用DAO模式,那你就可以再做一个DAOIMPL,修改DAOFACTORY就好了,维护上容易多了。 当然如果你说你可以再做一个DAOIMPL,然后改所有的DAO dao=new DAOImpl();为:DAO dao=new DAOImplNew();呵呵,那我就服了U!:) yeshucheng(叶澍成(七哥)) :Spring的注入固然好,但效率是个问题。Spring的滥用并不可取。 此贴不可不看http://forum.javaeye.com/viewtopic.php?t=122 正如上面有人说的.用Factory创建DAO属于工厂模式。Factory中的方法可以让你在不了解DAOImpl的情况下,创建DAOImpl类。虽然很多时候Factory里只是简单的new了一个DAOImpl变量,但这样写,就提供了一种可扩展的方法,比如有一天想改为单例模式(我只是假设)或者在生成DAOImpl的时候要进行一系列的初期化处理等等,这样就只需要改Factory里那个方法.不需要每个生成DAOImpl的地方都来改一遍.甚至有一天不需要用DAOImpl了,要用另一个实现DAO的子类取代DAOImpl,也只需要改Factory. 如何根据sql查询的结果集ResultSet获取sql中某列对应的子结果集? 在任务中国发一个小程序的任务,主要是由于时间紧急 java开发基于手机平台的网站还能否使用mvc模式架构了? 谁写过语言 tomcat 启动时报这个错 请高手帮忙 面向模块化开发(MOP) struts中<html:multibox>标签为什么老是默认选中第一个复选框 关于线程 有一个JAVA做的项目,但不知道是用什么什么工具开发的,请指教 问个比较幼稚的问题? weblogic 是个什么冬冬啊 困惑问题 走过路过,不要错过,jsp调用Ejb的问题。
pbMaster(编程无境界) 的话我懂了,只是对于一个数据库为什么照样很多人用DAO呢,如果他真的没有什么过人之处,他就不会如此流行了!!!遍地可见啊!
这里的DAO还有另一个用处,比如你现在用CMP作持久化,但如果你发现CMP不行,要该为HIBERNATE。如果你没有用DAO模式,你必须直接改DAOIMPL。
而如果你用DAO模式,那你就可以再做一个DAOIMPL,修改DAOFACTORY就好了,维护上容易多了。
DAO dao=new DAOImpl();
为:
DAO dao=new DAOImplNew();
呵呵,那我就服了U!:)
Spring的注入固然好,但效率是个问题。Spring的滥用并不可取。