一、用途

一个产品接口对应于一个具体工厂,具体工厂用于生产产品接口下的所有类的实例。

工厂类中可以只定义一个方法,有选择性地生产各类产品。

二、要素

  • Factory:工厂类,生产各类产品。
  • 示例图:

工厂模式.jpg

三、优缺点

  • 更灵活地创建产品实现类
  • 每增加一个产品接口,需要添加一个工厂类。

四、变体:工厂方法在产品类类的内部

1. 静态工厂方法

可以在类的内部创建所属类的实例,也可以创建其他类的实例。

2. 连接平行的类层次

在所属类中创建其他类实例供所属类使用,实现了具有平行关系的所属类和其他类的连接。