意图
定义:一个创建对象的接口,让其子类决定实例化哪一个工厂,工厂模式使其创建过程延迟到子类进行。
主要解决:
解决选择接口的问题
如何使用
明确的执行不同条件下创建不同实例
如何解决
让其子类实现工厂接口,返回的也是一个抽象的产品
关键代码
创建过程在其子类执行
优点
1.一个调用者想创建一个对象,只要知道其名称就可以了,
2.扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以
3.屏蔽产品的具体实现,调用者只关心产品的接口
缺点
每次正价一个产品需要增加一个具体类和实现对象实现工厂,使得系统中类的个数成本增长,在一定程度上增加了系统的复杂度,也同事增加了系统具体类的依赖,这并不是什么好事
factory_pattern_uml_diagram.jpg