三种模式看了一天,记录下自己的理解
HeadFirst,比萨店为例
1,简单工厂模式
一个具体的工厂类SimplePizzaFactory
一个抽象的产品类Pizza,可以派生出多个具体的产品类
客户:PizzaStore类
工厂类SimplePizzaFactory类关联产品类Pizza,工厂生产出不同类型的Pizza
客户类PizzaStore类关联工厂SimplePizzaFactory类,客户类PizzaStore通过工厂类得到的某种类型的Pizza,可以对具体Pizza进行烘烤,切片等操作,来提供Pizza
2,工厂模式
一个抽象产品类Pizza,可以派生出多个具体产品类
一个抽象工厂类PizzaStore,可以派生出多个具体工厂类
每个具体工厂类(Pizza店)只能创建一个具体产品类的实例,如纽约Pizza店,芝加哥Pizza店
3,抽象工厂模式
多个抽象产品类(Dough,Sauce,Cheese...),可以派生出多个具体产品类
一个抽象工厂类(PizzaInGredientFactory),可以派生出多个具体工厂类
每个具体工厂类(PizzaInGredientFactory),可以创建多个具体产品类的实例
这里把NYPizzaStore看着客户,从PizzaStore的角度理解