介绍
简单工厂->超级工厂(简单工厂+反射+泛型)
原理
使用反射创建对象,使用泛型进行强制类型转换
语法
public class SuperFactory {
public static <T> T create(String className){
try {
// 动态加载 class
Class<?> clazz = Class.forName(className);
// 利用 Class 对象来创建实例,先得到 class 中的构造器,然后再创建实例
T instance = (T) clazz.getConstructor().newInstance();
return instance;
} catch (Exception e) {
// 异常重抛
throw new RuntimeException("Create instance fail.",e);
}
}
}
优缺点
优点
- 避免违背开闭原则
- 什么都可以创建
缺点
- 每调用一次就创建一次,对资源是否的浪费