一、工厂方法模式的结构
工厂方法时简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法保持了简单工厂的优点克服了它的缺点。
首先,在工厂方法模式中,核心的工厂类不在负责所有产品的创建,具体的创建工作交给子类完成。核心类作为一个抽象工厂,仅仅给出具体工厂类必须实现的接口。在实际的系统中,如果产品存在如下的等级层次结构:
基于上面的产品结构,出现了多于一个的抽象产品类,这是一种最真实的产品结构。把工厂方法模式应用到这种产品结构中,最常用的方式是模拟一种与上述产品结构相同的工厂等级结构。
然后相应的工厂角色负责创建相应的产品角色。
工厂方法模式和简单工厂模式在结构上是明显不同的,工厂模式的核心是一个抽象工厂类,而简单工厂模式的核心是一个具体的工厂类。
工厂方法模式的系统中包含以下角色:
- 抽象工厂(Creator)
- 具体工厂(Concrete Creator)
- 抽象产品(Product)
- 具体产品(Concrete Product)