简单工厂:
简单工厂是直接建一个工厂类,在里面创建对象,在需要对象的世界,实例化工厂,创建对象
public class PizzaFactory {
public PizzaStore CreatePizzaStore(){
....
}
}
简单工厂在控制和扩展等一些个方面就不足了,但是足够简单用起来方便。
工厂方法:
工厂方法模式通过让子类觉得该创建对象是什么,来达到封装的目的。
可以看到 createPIzza 是实创建对象的方法。通过之类来创建以后再有这些个具体子类的时候工厂方法,就与其他的类 没有关系了。
抽象工厂:
抽象工厂可以这个理解,有一个工厂接口,然后每个工厂都去实现这个接口。然后在调用工厂方法的时候,通过组合多态的方式调用到了不同的工厂的工厂方法。
不过有一点就是,如果这个大的工厂接口做了改变所有的具体工厂都得改变。