动态工厂模式学习,动态工厂类的优点就是不管后续新增有多少接口和子类实例,无需修改工厂类,只需要调用Factory.getInstance(className,接口.class),即可完成接口子类对象的实例化创建
package com.tencent.baosen; /** * 动态工厂模式学习 */ public class Factory { //工厂模式不需要外部对象实例化,所以构造方法应该是私有化的 private Factory(){} //构造方法私有化后,该类中的其他方法应该是static才能被外部调用 public static <T> T getInstance(String className, Class<T> clazz){ T instance = null; try { //通过反射,将静态工厂类转变成动态工厂类 instance = (T) Class.forName(className).getDeclaredConstructor().newInstance(); } catch (Exception e) { e.printStackTrace(); } return instance; } }