注意:复杂对象的创建适合使用工厂模式,简单对象如果只需要new出来,无需使用工厂模式。使用工厂模式,则需要创建工厂类,会增加系统复杂度。
使用工厂模式的时候,我们在创建对象的时候不会对客户端暴露对象的创建逻辑,并且是通过一个共同的接口实现对象的创建。
引用一个简单demo的UML图:
下面这个demo也是比较简单通用:
public class ObjFactory { public static <T> T getObj(Class<? extends T> clazz){ T o = null; try { o = (T)Class.forName(clazz.getName()).newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return o; } }
--------------------------------------------------------------
与君共勉,大家加油!