这里的设计模式你用过几种?
Posted 茶瓜客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这里的设计模式你用过几种?相关的知识,希望对你有一定的参考价值。
创建型模式
单例模式要求全局只能有一个实例,所以,单例类会设计成其构造函数和赋值构造函数私有化,完成内部建立维护唯一的实例对象。
有些像工厂批量生产物品一样,通过固定的接口,生产出种类相同的不同个体。
对外接口统一,不用暴露过多的创建逻辑;并且可延迟创建实例对象,可以在确定了一些信息后再创建对象。
配合继承使用,可以很灵活的添加相同种类的
product
。
在对象本身创建起来很麻烦,代价很大的时候,就可以用到原型模式。
这个设计模式很少单独使用,毕竟使用条件苛刻、鸡肋。
结构型模式
适配器模式使得两个不兼容的系统能够实现数据对接的可能。
类似你显示器只有一个VGA接口,而你只有一根HDMI线,那个HDMI转VGA转换器就是应用了适配器模式。
“卓接视之,见其刀长尺余,七宝嵌饰,极其锋利,果宝刀也。”
曹操行刺董卓拿的那把七星刀应用了装饰器模式。本来刀没有宝石这个属性的,把宝石嵌上去,刀就有了宝石的属性。
组成模式总是在不知不觉的时候就会被使用,例如一个汽车类里有四个轮子类,每个轮子使用什么牌子的轮胎可以由统一接口设置。
当某个对象,出于某种原因(这也许就是隔离吧),无法直接访问却又要使用其功能的时候,就需要用到代理模式了。
行为模式
社畜都知道,在公司请假需要走OA流程的,从你提出流程开始,这个流程经历了重重把关之后,才会到最后归档的终节点。
在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。
命令模式是一种数据驱动的设计模式,请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。
类似Json解析器、XML解析器就是使用这种模式。
这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。
跟代理模式相似。但是中介者模式更偏向用于模块解耦,代理模式则是封装对象功能,使得上层无需知道底层对接的是什么东东。
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
一个抽象类公开定义了执行它的方法的方式、模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。
以上是关于这里的设计模式你用过几种?的主要内容,如果未能解决你的问题,请参考以下文章
浏览器的 5 种 Observer,你用过几种?
MyBatis的三种分页方式,你用过几种?
MyBatis的三种分页方式,你用过几种?
SpringMVC 方法三种类型返回值总结,你用过几种?
SpringMVC 方法三种类型返回值总结,你用过几种?
10款免费的电路设计软件,你用过几个?