分类
工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。
工厂模式可以分为三类:
简单工厂模式 (Simple Factory, 简单工厂模式可看为工厂方法模式的一种特例,两者归为一类。 )
工厂方法模式 (Factory Method)
抽象工厂模式 (Abstract Factory)
这三种模式从上到下逐步抽象,并且更具一般性。
GOF在《设计模式》一书中将工厂模式分为两类:工厂方法模式(Factory Method)与抽象工厂模式(Abstract Factory)。
区别
简单工厂模式 :
一个工厂类, 这个工厂类能创建多个具体产品类的实例。
一个抽象产品类,可以派生出多个具体产品类。
工厂方法模式 :
一个抽象工厂类,可以派生出多个具体工厂类。
一个抽象产品类,可以派生出多个具体产品类。每个具体工厂类只能创建一个具体产品类的实例。
抽象工厂模式 :
一个抽象工厂类,可以派生出多个具体工厂类。
多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。每个具体工厂类可以创建多个具体产品类的实例。
区别:
工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。
简单工厂模式
1 |
|
1 | /** |
1 | /** |
工厂方法模式
1 |
|
1 | /** |
1 | /** |
抽象工厂模式
1 |
|
1 | /* |
1 | /* |