面向对象设计模式(工厂模式)

面向对象的六大设计原则

1:单一职责原则
-其实就是“高内聚,低耦合”。每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个。
2:开闭原则
-核心思想就是:对扩展开放,对修改关闭
3:里式替换原则
-核心思想:在任何父类出现的地方都可以用子类来替代。也就是说在同一个继承体系中的对象应该有共同的行为特征。
4:依赖倒转原则
-要依赖于抽象和接口,不要依赖于具体实现。
5:接口分离原则
-核心思想:不应该强迫程序依赖它们不需要使用的方法。即一个接口不需要提供太多的行为,一个接口应该只提供一种对外的功能,不应该把所有的操作都封装到一个接口中。
6:迪米特原则
-核心思想:一个对象应当对其他对象尽可能少的了解。即降低各个对象之间的耦合性,提高系统的可维护性,在模块之间应该只通过接口编程,而不理会模块内部的工作原理,它可以使各个模块的耦合度降到最低,促进软件的复用。

设计模式的类型

总体上来说设计模式分为三类23种:

  • 创建型(5种):工厂模式、抽象工厂模式、单例模式、原型模式、构建者模式
  • 结构型(7种):适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、亨元模式
  • 行为型(11种):模板方法模式、策略模式、观察者模式、中介者模式、状态模式、责任链模式、命令模式、迭代器模式、访问者模式、解释器模式、备忘录模式。

1:工厂模式

  • 简单工厂模式

工厂类拥有一个工厂方法(create),接受了一个参数,通过不同的参数实例化不同的产品类

在这里插入图片描述

  • 工厂方法模式(抽象工厂的特例)

工厂方法是针对每一种产品提供一个工厂类。
通过不同的工厂实例来创建不同的产品实例
优点:
1:工厂方法模式很好的减轻了工厂类的负担,把某一类/某一种东西交由一个工厂生产;
2:同时增加某一类东西并不需要修改工厂类,只需要添加生产这类东西的工厂即可,使得工厂类符合开放封闭原则
缺点:
1:对于某些可以形成产品族的情况比较复杂

在这里插入图片描述

  • 抽象工厂模式

抽象工厂是应对产品族概念的
例如:汽车可以分为轿车、SUV、MPV等,也分为宝马、特斯拉等。将宝马的所有车型看做是一个产品族,特斯拉的所有车看作是另外一个产品族。分别对应两个工厂,一个宝马工厂,一个特斯拉工厂。与工厂方法不同,宝马的工厂不仅仅只生产具体的某一个型号的产品,而是一族产品(宝马轿车、宝马SUV、宝马MPV)。“抽象工厂”的“抽象”指的就是这个意思
上面的工厂方法模式是一种极端的抽象工厂模式(即只生产一种产品的抽象工厂模式),而抽象工厂模式可以看做工厂方法模式的一种推广。

在这里插入图片描述

  • 工厂模式区别

1:简单工厂:用来生产同一等级结构中的任意产品。(不支持拓展增加产品)
2:工厂方法:用来生产同一等级结构中的固定产品。(支持拓展增加产品)
3:抽象工厂:用来生产不同产品族的全部产品。(不支持拓展增加产品,支持增加产品族)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值