工厂模式的一个简单实现
2019-08-16 10:57:12来源:博客园 阅读 ()
工厂模式的一个简单实现
1 工厂类
public class TestFactory {
/**
*
*/
private static Map<String, TestInterface> beanMap = ContextUtil.getContext().getBeansOfType(TestInterface.class, false, false);
public static TestInterface getInstance(String infType) {
TestInterface curInstance = null;
for (String beanName : beanMap.keySet()) {
TestInterface instance = beanMap.get(beanName);
if (instance.getType() == null)
throw new RuntimeException("接口实现类类型不可以为空");
else {
if (infType.equals(instance.getType())) {
curInstance = instance;
break;
}
}
}
return curInstance;
}
}
2 获取bean类
根据Spring
上下文得到某个接口的实现类。
public class ContextUtil implements ApplicationContextAware {
private static ApplicationContext context;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
ContextUtil.context = applicationContext;
}
public static ApplicationContext getContext() {
return context;
}
}
3 需要获取实例的接口类
public interface TestInterface<T> {
String getType();
void testFunc(T t);
}
4 TestInterface
的一个实现类
public class TestInterfaceImpl implements TestInterface<String> {
@Override
public String getType() {
return "1";
}
@Override
public void testFunc(String s) {
System.out.println("TestInterfaceImpl -- 01");
}
}
原文链接:https://www.cnblogs.com/imisty/p/11227983.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 如何干掉 if else 策略+工厂 2020-06-11
- 作为一个面试官,我想问问你Redis分布式锁怎么搞? 2020-06-10
- 设计模式-委派/策略模式 2020-06-09
- 我可真是醉了,一个SpringBoot居然问了我30个问题 2020-06-08
- 深入理解:设计模式中的七大设计原则 2020-06-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash