一个通用工厂模式的优雅实现。。。= =

来源:互联网 发布:js 控制 embed翻页 编辑:程序博客网 时间:2024/06/06 20:24
package com.itheima.utils;import java.io.IOException;import java.io.InputStream;import java.util.Properties;public class DaoFactory {Properties pro =  new Properties();private static DaoFactory instance = new DaoFactory();private DaoFactory(){InputStream is = DaoFactory.class.getClassLoader().getResourceAsStream("dao.properties");try {pro.load(is);} catch (IOException e) {throw new ExceptionInInitializerError(e);}}public static DaoFactory getInstance() {return instance;}public <T> T createDao(Class<T> clazz){String name = pro.getProperty(clazz.getSimpleName());if(name==null) {throw new RuntimeException("找不到与" + name +"匹配的类");}try {return (T)Class.forName(name).newInstance();} catch (Exception e) {throw new RuntimeException(e);}}}

配置文件一般是这样:

CustomerDao=com.itheima.dao.impl.CustomerDaoImplCustomerStatusDao=com.itheima.dao.impl.CustomerStatusDaoImplInfoSourceDao=com.itheima.dao.impl.InfoSourceDaoImpl

原创粉丝点击