使用一个Dao生产类(工厂模式)产生自己所需的Dao;
Factory设计为单例模式:
class DaoFactory{
//自己实例化一个对象,以便其他类调用获得Dao
private static DaoFactory daoFactory;
//将你需要的Dao类的信息放入properties中,为了以后的方便维护
private Properties daoConfig ;
//私有构造,不允许其他类实例化
private DaoFactory(){
//放到初始化中的语句只会被执行一次
InputStream is = DaoFactory.Class.getLoader().getResourceAsStream();
try{
daoConfig.load(is);
}catch(Exception e){
throw new RunTimeException(e);
}
}
//构造方法,使私有实例可以被其他类调用
public static DaoFactory getInstance(){
retuen daoFactory;
}
//为了返回自己所需要的Dao,使用泛型接受所需的Dao
public static <T>T createDao(Class<T> clazz){
String name = clazz.getSimpleName();
String className = daoConfig.getproperties(name); //name = 你自己在properties中配置的键对值
try{
//获得实例
T dao = (T) Class.forName(className).newInstance();
return dao;
}catch(Exception e){
throws new RuntimeException(e);
}
}
}