BeanFactory的思想
1.BeanFactory所用到的设计模式是抽象工厂设计模式。
此模式是通过配置文件+反射来动态得到对象。那么这种模式有什么好处吗?首先,简单谈下当未使用开发框架时,我们写好的项目是要发布出去的,及发布到Tomcat上,以便客户访问,这时,我们所发布的项目不会包含有项目源码的,都是class文件和前端页面还有配置文件,如果我想换个数据库了,那么一般情况下,都不会选择重新编译源文件重新发布项目,而是要想办法解决这个问题,那么抽象工厂模式就能很好的解决这个问题。将需要涉及到的对象放到配置文件中,再通过反射动态得到相应的对象,那么只需要简单改下配置文件就可以了,而不需要去重新编译,大大方便了开发与部署。
2.代码
package com.wuhaitao.util;
import java.util.ResourceBundle;
/**
* @Classname BeanFactory
* @Description TODO
* @Date 2019/3/13 16:05
* @Created by wuhaitao
*/
public class BeanFactory {
public static <T> T newInstance(Class<T> clazz) {
//通过字节码对象得到接口名
String name = clazz.getSimpleName();
//读取配置文件,通过接口名找到相应实现类对象名
ResourceBundle resourceBundle = ResourceBundle.getBundle("bean");
String className = resourceBundle.getString(name);
//通过反射创建实现类对象
try {
return (T) Class.forName(className).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
网友评论