一个通用工厂模式的优雅实现。。。= =
2011-11-14 23:31
225 查看
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.CustomerDaoImpl CustomerStatusDao=com.itheima.dao.impl.CustomerStatusDaoImpl InfoSourceDao=com.itheima.dao.impl.InfoSourceDaoImpl
相关文章推荐
- C++模板实现的通用工厂方法模式
- 简单工厂模式---一个简单计算器的实现
- 码农小汪-设计模式-工厂方法模式 每一产品都有一个具体的实现工厂
- ASP.net 中的页面继承实现和通用页面的工厂模式的实现
- C++模板实现的通用工厂方法模式
- ASP.net 中的页面继承实现和通用页面的工厂模式的实现
- 一个java实现的简单工厂模式
- ASP.net 中的页面继承实现和通用页面的工厂模式的实现
- C++模板实现的通用工厂方法模式
- C++模板实现的通用工厂方法模式
- 模板实现的通用工厂方法模式
- 采用C++的ACE库实现的一个通用的C/S架构通信程序
- 简单工厂模式(C#实现)
- 模仿qsort的功能实现一个通用的冒泡排序。
- 学习php设计模式 php实现工厂模式(factory)
- 设计模式C++实现(1)——工厂模式
- 附加一个:为什么要用简单工厂模式
- 设计模式的C++实现 2.工厂模式
- TitleLayout——一个Android轻松实现通用、标准、支持沉浸式状态栏的标题栏库
- 《Orange’s 一个操作系统的实现》3.保护模式5----特权级概述(转)