factory.java文件实现
package com.itheim.customers.dao.factory;
import java.util.ResourceBundle;
import com.itheim.customers.dao.CustomerDao;
/*
* 这是 用于创建 dao的工厂 类 ,
*
* 工厂类 很多时候 会被 弄成单例的
*
*
*/
public class DaoFactory {
private DaoFactory(){};
//创建一个 工厂 的实例
private static DaoFactory instance = new DaoFactory();
public static DaoFactory getInstance(){
return instance;
}
// 用于 返回 传进来的 类的一个实例 对象出去
// CustomerDao.class
public <T> T createDao(Class<T> t){
// Teacher.class ----- Teacher
// CustomerDao.class ---CustomerDao
String simpleName = t.getSimpleName();
//读取一个配置文件 : CustomerDao=com.itheim.customers.dao.impl.CustomerDaoImpl
// com.itheim.customers.dao.impl.CustomerDaoImpl
String clazzName = ResourceBundle.getBundle("dao").getString(simpleName);
try {
return (T)Class.forName(clazzName).newInstance();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
}