日期:2014-05-17  浏览次数:20810 次

为什么这样?

package cn.itcast.utils;

public class DaoFactory {
private DaoFactory(){}
private static final DaoFactory instance=new DaoFactory();//单例化
public static DaoFactory getInstance(){
return instance;
}

public <T> T createDao(String className,Class<T> clazz){
try {
return (T) Class.forName(className).newInstance();
} catch (Exception e) {
throw new RuntimeException(e);
}

}

}


这个工厂类,使用时这样:Dao.getInstance().createDao(*,*)  为何要有getInstance()这个方法,直接把createDao()方法设为static. 而后这样Dao.createDao(*,*)不行吗?我感觉这个getInstance()方法有点画蛇添足了,不知它具体有什么特殊作用???求指点
instance 工厂类

------解决方案--------------------
这是单例模式。你这里createDao方法没有用到instance这个变量,所以你觉得那个没什么用处,当你好多方法用到这个instance的时候,那个getInstance就是返回当前唯一一个对象,去执行这些操作。