这里的设计模式你用过几种?

Posted 茶瓜客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这里的设计模式你用过几种?相关的知识,希望对你有一定的参考价值。

点击标题下「蓝色微信名」可快速关注

创建型模式

  • 单例模式
图片来源:菜鸟教程
单例模式应该是最简单的一种设计模式。
单例模式要求全局只能有一个实例,所以,单例类会设计成其构造函数和赋值构造函数私有化,完成内部建立维护唯一的实例对象。
  • 工厂模式
这里的设计模式你用过几种?
图片来源:菜鸟教程
有些像工厂批量生产物品一样,通过固定的接口,生产出种类相同的不同个体。
对外接口统一,不用暴露过多的创建逻辑;并且可延迟创建实例对象,可以在确定了一些信息后再创建对象。
配合继承使用,可以很灵活的添加相同种类的 product
  • 原型模式
这里的设计模式你用过几种?
图片来源:菜鸟教程
在对象本身创建起来很麻烦,代价很大的时候,就可以用到原型模式。
这个设计模式很少单独使用,毕竟使用条件苛刻、鸡肋。

结构型模式

  • 适配器模式
这里的设计模式你用过几种?
图片来源:菜鸟教程
适配器模式使得两个不兼容的系统能够实现数据对接的可能。
类似你显示器只有一个VGA接口,而你只有一根HDMI线,那个HDMI转VGA转换器就是应用了适配器模式。
  • 装饰器模式
这里的设计模式你用过几种?
图片来源:菜鸟教程
“卓接视之,见其刀长尺余,七宝嵌饰,极其锋利,果宝刀也。”
曹操行刺董卓拿的那把七星刀应用了装饰器模式。本来刀没有宝石这个属性的,把宝石嵌上去,刀就有了宝石的属性。
  • 组成模式
这里的设计模式你用过几种?
图片来源:菜鸟教程
组成模式总是在不知不觉的时候就会被使用,例如一个汽车类里有四个轮子类,每个轮子使用什么牌子的轮胎可以由统一接口设置。
  • 代理模式
这里的设计模式你用过几种?
图片来源:菜鸟教程
想象下房产中介的工作大概就清楚了。
当某个对象,出于某种原因(这也许就是隔离吧),无法直接访问却又要使用其功能的时候,就需要用到代理模式了。

行为模式

  • 职责链模式
这里的设计模式你用过几种?
图片来源:菜鸟教程
社畜都知道,在公司请假需要走OA流程的,从你提出流程开始,这个流程经历了重重把关之后,才会到最后归档的终节点。
在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。
  • 命令模式
这里的设计模式你用过几种?
图片来源:菜鸟教程
命令模式是一种数据驱动的设计模式,请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。
  • 解析器模式
这里的设计模式你用过几种?
图片来源:菜鸟教程
类似Json解析器、XML解析器就是使用这种模式。
用对应的语法语义去解析语言。
  • 迭代器模式
这里的设计模式你用过几种?
图片来源:菜鸟教程
这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。
  • 中介者模式
这里的设计模式你用过几种?
图片来源:菜鸟教程
跟代理模式相似。但是中介者模式更偏向用于模块解耦,代理模式则是封装对象功能,使得上层无需知道底层对接的是什么东东。
  • 观察者模式
图片来源:菜鸟教程
叮~您关注的xxx主播上线啦~
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
  • 模板方法模式
图片来源:菜鸟教程
一个抽象类公开定义了执行它的方法的方式、模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。



-往期 回顾-




以上是关于这里的设计模式你用过几种?的主要内容,如果未能解决你的问题,请参考以下文章

浏览器的 5 种 Observer,你用过几种?

MyBatis的三种分页方式,你用过几种?

MyBatis的三种分页方式,你用过几种?

SpringMVC 方法三种类型返回值总结,你用过几种?

SpringMVC 方法三种类型返回值总结,你用过几种?

10款免费的电路设计软件,你用过几个?