java高手进,帮忙解答下DAO工厂设计模式方面的问题

所有用到的页面都要改。如果使用DAO工厂类,表象成可以这样引用PersonDAO personDAO=DaoFactory.get getPersonDAOInstance();遇到以上问题,修改的时候只要将工厂累修改一下就可以了 public class DaoFactory{ public static PersonDAO getPersonDAOInstance(){ return new PersonDAOImpl() ;} 将上面的改...
java高手进,帮忙解答下DAO工厂设计模式方面的问题
我觉得有两种方法可以解决,一个是改用Spring框架全面托管类的实例化,第二种方法可以使用接口的方式但是只是减小了一半的代码改动量。要不就用代理和反射机制2012-09-30
真长2012-09-25
1、在表现层引用PersonDAO personDAO=new PersonDAOImpl()类是干什么的?
答:PersonDAO personDAO=new PersonDAOImpl()引用这句话让表现成取得DAO对象,表现成可以通过“personDAO.方法”来对数据库person表进行操作。

2、又写了个PersonDAOJDBCImpl.java类,在表现层全部改成这个类是说的什么意思?
答:上面写的很清楚,DAO的Hibernate实现开始全部转换成JDBC实现。但是项目经理建议不要破坏现有的Hibernate实现,以后可以通过技术研究来提升Hibernate的访问效率。所以要在不破坏DAO的Hibernate实现(PersonDAOImpl.java)的情况下实现DAO的JDBC实现,所以只能在写一个PersonDAOJDBCImpl.java(PersonDAOImpl.java类和PersonDAOJDBCImpl.java类同时存在都实现PersonDAO 接口),要使用JDBC实现,表现层就要将PersonDAO personDAO=new PersonDAOImpl()改为PersonDAO personDAO=new PersonDAOJDBCImpl(),所有用到的页面都要改。

如果使用DAO工厂类,表象成可以这样引用PersonDAO personDAO=DaoFactory.get getPersonDAOInstance();
遇到以上问题,修改的时候只要将工厂累修改一下就可以了
public class DaoFactory{
public static PersonDAO getPersonDAOInstance()
{
return new PersonDAOImpl() ;
}
将上面的改为下面的
public class DaoFactory{
public static PersonDAO getPersonDAOInstance()
{
return new PersonDAOJDBCImpl();
}

其实说的意识是一开始就要用工厂,之后修改起来就方便了。2012-09-25
mengvlog 阅读 8 次 更新于 2025-07-19 13:29:59 我来答关注问题0
  • 1、在表现层引用PersonDAO personDAO=new PersonDAOImpl()类是干什么的?答:PersonDAO personDAO=new PersonDAOImpl()引用这句话让表现成取得DAO对象,表现成可以通过“personDAO.方法”来对数据库person表进行操作。2、又写了个PersonDAOJDBCImpl.java类,在表现层全部改成这个类是说的什么意思?答:...

  • 1.有人说去掉泛型,这是一个很烂的习惯,完全可以用List list = new ArrayList();来达到无泛型的效果2.去掉泛型或者用List还是有问题,因为你取数据的时候取到的都是Object,需要转换为Integer或者String. 问题是:你知道哪个元素要转成Integer,哪个元素又要转成String??3....

  •  琦玉Smile JAVA编程问题求大神帮忙看看解答谢谢!

    你的问题:1 、定义的数组类型有问题 讲解:字符数组用该用char 或者String 你这个由于是中文字符串,所以用String char 和String 定义是需要引号引起来,2 、java中,结束一段表达式的时候要用英文的分号结束,你定义数组的时候没有结束符 int 里面不能存 字符串;用String[] a={"nike背包...

  •  金中建 java 类的static变量值改不了,太奇怪了,高手帮忙解答一下原因。

    按我的理解是这样就是两个程序,相互之间的变量应该是互斥的,不然就会产生死锁等,所以就是B的MAIN调用的A的COUNT为其所分配一块内存,C的Main一样,然后相当于各自有一个变量赋值了 自然就变了

  • A)不能编译通过 request.setAttribute("count",new Integer(0)); //设置请求变量count-0;Integer count = request.getAttribute("count"); //从请求中取出变量的count值。但是不能直接从object转成 integer应该是:Integer count = (Integer) request.getAttribute("count");A...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部