也称为
虚拟构造方法
使用场景
- 类不能预知它本身创造的对象
- 一个类想要它的自类来确定具体需要构建的对象
- 类将责任代理给其他几个帮助类,可以从帮助类中获取被创建对象的信息。
参与对象
- 产品类
- 具体产品类
- 创建者接口
- 具体创建者
使用方式
创建者依赖于它的自类定义的方法来产生一个具体产品对象。
使用结果
- 工厂方法可以避免饮用绑定具体的类到代码中
- 但是也有一个缺点,必须创建创造者接口的子对象来产生一个具体的产品对象
- 额外两点:为子类提供了钩子函数,更加灵活
- 出现了类似的类层次结构