工厂解耦

来源:互联网 发布:go开头的软件 编辑:程序博客网 时间:2024/05/16 13:02

工厂

package cn.tedu.factory;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.Properties;public class BasicFactory {private static BasicFactory factory = new BasicFactory();private static Properties prop = new Properties();private BasicFactory() {}public static BasicFactory getFactory() {return factory;}static {try {String path = BasicFactory.class.getClassLoader().getResource("conf.properties").getPath();prop.load(new FileInputStream(new File(path)));} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);}}/** * 创建各种实例 */public <T> T getInstance(Class<T> clazz) {//UserDao UserServicetry {String className = prop.getProperty(clazz.getSimpleName());//根据clazz.getSimpleName()接口名,配置文件中获取实现类的全路径名Class clz = Class.forName(className);return (T)clz.newInstance();} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);}}}


原创粉丝点击