超级工厂

超级工厂

介绍

简单工厂->超级工厂(简单工厂+反射+泛型)

原理

使用反射创建对象,使用泛型进行强制类型转换

语法

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);
        }
    }
}

优缺点

优点

  1. 避免违背开闭原则
  2. 什么都可以创建

缺点

  1. 每调用一次就创建一次,对资源是否的浪费