1 概念定义
1.1 定义
定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
1.2 类型
创建类模式
2 原理特征
2.1 类图
2.2 优点
1)封装性良好,代码结构清晰
2)可拓展性高,只需修改一下工厂方法或拓展一个工厂类
3)屏蔽产品类,调用者不需要关心产品类的变化
4)高度解耦,高层模块只需知道产品抽象类,无需关注实现
2.3 缺点
代码复杂度增加
3 .应用拓展
3.1 应用场景
1) 有一组类似的对象需要创建
2) 在编码时不能预见需要创建那种类的实例。
3) 系统需要考虑可拓展性,不应依赖于产品类实例如何被创建、组合和表达的细节。
4) 工厂方法可用于异构项目中
3.2 实践拓展
https://github.com/Devonmusa/java-demos/tree/master/src/main/java/com/designpattern/factorymethods
4 注意事项
1).工厂方法模式关注对象整体,不关注过程和细节