工厂模式

1.      比萨店老板卖比萨

——orderPizza()

——prepare,bake,cut,box

2.      创建各种比萨,系统更有弹性

——orderPizza(type)

   根据类型实例化具体类pizza = new TypePizza();

3.      压力来自增加更多比萨,以及从菜单中去掉

——比萨的烘烤、切片、装盒不变,比萨风味会修改

——封装创建对象的代码,比萨店只关心从工厂得到一个比萨

——SimplePizzaFactory可以有很多客户,不仅oderPizza,还可以PizzaShopMenu,HomeDelivery

——PissaStore仰仗工厂创建比萨{简单工厂,不是设计模式}

图排1

4.      加盟比萨店,每个加盟店想要提供不同风味的比萨

——希望比萨的流程能不变,那么加盟店需要一直的代码

——创建不同的各地工厂,各地工厂制造相应的风味


5.      多一些质量控制,自创流程

­——createPizza(), 工厂对象移到这个方法中

——允许子类做决定,加盟店卖各地区的风味



6.      不能忽略pizza本身,具体子类初始化name,dough,sauce,…

        工厂模式都用来封装对象的创建。让类把实例化推迟到子类

        工厂模式通过让子类决定该创建的对象是什么,来达到将对象创建过程封装的目的。

         直接实例化一个对象,就是依赖它的具体类。代码里减少对于具体类的依赖是“好事”。

         依赖倒置原则(Dependency Inversion Principle):要依赖抽象,不要依赖具体类。

                               不能让高层组件依赖低层组件,两者都应该依赖于抽象。

 PizzaStore是高层组件,披萨是低层组件,PizzaStore依赖这些具体披萨类。应重写代码以便于依赖抽象类,而不是具体类。

              一般OO设计的思考方式,依赖关系由上往下,需要倒置。


避免违反依赖倒置原则:

1. 变量不可以持有具体类的引用

2. 不要让类派生自具体类

3. 不要覆盖基类中已实现的方法


7.      抽象工厂模式

抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值