1.
——orderPizza()
——prepare,bake,cut,box
2.
——orderPizza(type)
3.
——比萨的烘烤、切片、装盒不变,比萨风味会修改
——封装创建对象的代码,比萨店只关心从工厂得到一个比萨
——SimplePizzaFactory可以有很多客户,不仅oderPizza,还可以PizzaShopMenu,HomeDelivery
——PissaStore仰仗工厂创建比萨{简单工厂,不是设计模式}
4.
——希望比萨的流程能不变,那么加盟店需要一直的代码
——创建不同的各地工厂,各地工厂制造相应的风味
5.
——createPizza(), 工厂对象移到这个方法中
——允许子类做决定,加盟店卖各地区的风味
6.
工厂模式都用来封装对象的创建。让类把实例化推迟到子类
工厂模式通过让子类决定该创建的对象是什么,来达到将对象创建过程封装的目的。
直接实例化一个对象,就是依赖它的具体类。代码里减少对于具体类的依赖是“好事”。
依赖倒置原则(Dependency Inversion Principle):要依赖抽象,不要依赖具体类。
不能让高层组件依赖低层组件,两者都应该依赖于抽象。
PizzaStore是高层组件,披萨是低层组件,PizzaStore依赖这些具体披萨类。应重写代码以便于依赖抽象类,而不是具体类。
一般OO设计的思考方式,依赖关系由上往下,需要倒置。
避免违反依赖倒置原则:
1. 变量不可以持有具体类的引用
2. 不要让类派生自具体类
3. 不要覆盖基类中已实现的方法
7.
抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。