1.工厂的目的:使用一个变化频率比较高的类不必忙着new(),而要依赖一个抽象的类型(抽象类或接口)。使用工厂的动机主要来自“变化“。
2.频繁的获取、抛弃抽象类型实例会有资源浪费的问题,有以下解决方法:
a.把工厂实例作为参数注入到操作中;
b.把工厂设计成singleton方式;
c.使用静态类。
3.工厂方法的使用场景:
a.客户程序需要隔离它与需要创建的具体类型间的耦合关系;
b.无法预知要创建的类型;
c.将创建工作隔离在客户程序之外,客户程序仅需要执行自己的业务逻辑,把这部分职责交给外部对象完成;
d.目标对象的继承关系比较复杂。
原文:http://www.cnblogs.com/w-future/p/3586490.html