设计模式-工厂模式

1.传统模式

传统工厂:是将对象创建和创建过程放在一个类中;

在这里插入图片描述

  • 传统工厂: 比较好理解,简单易操作;
    缺点违反了ocp原则, 即对外扩展,对修改关闭(即当我们给类增加新功能的时候,尽量不修改代码,或者尽可能少修改代码,)

2.简单工厂

  • 简单工厂(也称静态工厂)
    简单工厂设计方案:定义一个实例化Pizza对象的类,封装创建对象的对象。
    SimpleFactory 包含了chinesePizza 和createPizza2 createPizza3 创建和pizza的创建过程。

在这里插入图片描述

工厂方法:工厂方法模式,定义一个创建一对象的抽象方法,由子类决定要实例化的类(工厂方法将对象的实例化延迟到子类中去)

工厂方法原理图
BJOrderPizza 和LDOrderPizza 实现 了orderPizza 并且在,BJOrderPizza 和LDOrderPizza 中实现对 BJChinese BJPepperPizza 和LDChinesePizza LDPepperPizza的创建。创建过程延迟到了

在这里插入图片描述

代码后续补充

3. 抽象工厂

  • 定义一个interface 用于创建相关或有依赖关系的对象簇,而无需指明具体的类。
  • 从设计层面上,抽象工厂模式是对简单工厂的改进(或者进一步抽象)
  • 将工厂抽象为两层,absFactory(抽象工厂)和具体实现工厂的类。程序员,依据依据创建对象的类型,使用对应工厂的子类。(这样简单工厂变成了工厂簇,便于代码的维护和扩展)

在这里插入图片描述

代码后续补充

总结

  • 1.工厂模式的意义:将实例化代码提取出来,放到一个类中管理和维护,达到和主项目依赖的解耦,从而提高项目的扩展性和维护性。
  • 2.三种 工厂模式 简单工厂(静态工厂),工厂方法,抽象工厂。
  • 3.设计模式依赖抽象原则
    (1)创建对象时不要直接new 对象,而是把new类的动作放在一个工厂的方法中,并返回。
    (2)不要继承具体类,而是继续抽象或者接口类。
    (3)不要覆盖基类中已经实现的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

利剑 -~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值