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();
}
其实说的意识是一开始就要用工厂,之后修改起来就方便了。
我觉得有两种方法可以解决,一个是改用Spring框架全面托管类的实例化,第二种方法可以使用接口的方式但是只是减小了一半的代码改动量。要不就用代理和反射机制
真长