JavaScript设计模式
IIIlion
努力成为全栈攻城狮
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Javascript单例模式
一、什么是单例模式单例模式的定义是:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式的实现原理是:用一个变量来标识当前类是否已经创建了实例,如果创建了就直接返回该实例,如果没有创建就创建新的实例。二、实现单例模式1.简单的单例模式let Singleton = function (name) { this.name = name}Singleton.proto...原创 2019-03-06 19:11:02 · 225 阅读 · 0 评论 -
JavaScript中介者模式
中介者模式面向对象设计鼓励将行为分布到各个对象之中,把对象划分为更小的粒度,有助于增强对象的可复用性,但是由于这些细粒度对象之间的关系剧增,反过来可能会降低代码的复用性。中介者模式的作用就是解除对象与对象之间的耦合关系,增加一个中介者之后所有的相关对象都通过中介者来通信,而不是相互引用。如果当一个对象发生变化只要通知中介者即可,这样就降低了对象与对象之间的耦合性。中介者模式是迎合迪米特法则的...原创 2019-05-04 12:22:24 · 259 阅读 · 0 评论 -
JavaScript职责链模式
职责链模式职责链模式定义是:使多个对象都有机会处理请求,从而避免请求的发送者与接收者之间的耦合关系,将这些对象连接成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。例子比如我们在程序要处理多种可能的结果的时候,先把参数传给第一个函数,如果第一个函数处理结果为false,即为不能处理,则传递给下个函数,如果不能处理再传递给下一个函数,直到遇到能处理的函数。let order500 ...原创 2019-05-04 12:22:02 · 187 阅读 · 0 评论 -
JavaScript享元模式
享元模式享元模式是一种用于性能优化的模式,享元模式的核心就是运用共享技术来有效支持大量细粒度的对象。享元模式要求将对象的属性划分为内部状态和外部状态。享元模式的目标就是尽量减少共享对象的数量。怎样划分内部状态和外部状态?内部状态存储于对象内部内部状态可以被一些对象共享内部状态独立于具体场景,通常不会改变外部状态取决于具体的场景,并根据场景变化,外部状态不能被共享这样一来,我们便可...原创 2019-05-04 12:21:33 · 272 阅读 · 0 评论 -
JavaScript模板方法模式
1、什么是模板方法模式模板方法模式是一种使用继承实现的模式。模板方法模式由抽象的父类与及具体实现的子类组成。通常在父类封装了子类的算法框架与及子类中的公共方法,子类可以继承父类中的方法也可以重写父类中的方法。我们通过提取子类中一些相同的行为,来降低代码的耦合度。抽象类的主要主要作用就是定义子类的公共接口,子类必须都具有这些接口,否则不能正常运行。需要注意的是,抽象父类定义的一些接口并没有实际的...原创 2019-05-04 12:21:09 · 439 阅读 · 0 评论 -
JavaScript组合模式
1、什么是组合模式在程序设计中,有一些**“事物是由相似的子事物构成”**。组合模式就是用小的事物来构建更大的对象,而这些小的事物本身也许是由更小的“孙对象”构成。比如在命令模式中,宏命令对象中包含了一组具体的子命令对象,不管是宏命令对象还是子命令对象,都有一个execute方法负责执行命令。2、组合模式的用途组合模式将对象组合成树形结构,以表示**“部分-整体”的层次结构**。组合模式另...原创 2019-05-04 12:20:42 · 263 阅读 · 0 评论 -
JavaScript命令模式
一、什么是命令模式命令模式中的命令指的是一个执行某些特定事件的指令。记录指令的对象叫做命令对象。 命令模式的使用场景:有时候需要向某些对象发送请求,但是并不知道请求的接收方是谁,也不知道被请求的操作是什么。此时希望采用一种松耦合的方式来设计程序,使得请求发送者和请求接收者能够消除彼此间的耦合关系。所以我们使用命令模式,封装一个命令对象来记录。 比如如果我们要在一个页面中绘制10个按钮,一...原创 2019-05-04 12:20:17 · 252 阅读 · 0 评论 -
JavaScript迭代器模式
迭代器模式1.1 迭代器模式定义迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部。迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式后,即不需要关心对象的内部构造,也可以按顺序访问其中的每个元素。现在许多语言都有内置的迭代器实现,许多历览器也支持JavaScript的Array.prototype.forEach方法。1.2 jQuery...原创 2019-05-04 12:19:51 · 132 阅读 · 0 评论 -
JavaScript代理模式
代理模式是为一个对象提供一个替代品或者占位符,以便控制对他的访问。当客户不方便直接访问或者不满足条件访问一个对象的时候,提供一个替身对象来控制对这个对象的访问。客户 ——>本体客户——>代理——>本体保护代理代理可以帮助本体过滤一些不满足条件的访问者,代理可以直接拒绝这些访问者,以便保护本体代理模式的用途图片预加载(虚拟代理)let myImage = (func...原创 2019-05-04 12:19:21 · 226 阅读 · 0 评论 -
JavaScript策略模式
一、什么是策略模式?策略模式的定义是:定义一系列方法,把它们一个个封装起来,并且使用它们可以相互替换。一个基于策略模式的程序至少由两部分组成,第一个是策略类,里面封装了具体的算法,并负责计算的过程;第二个部分是环境类,负责接收请求,然后将请求委托给策略来实现。策略模式,将算法的实现以及算法的使用分离开来。二、实现一个策略类首先我们是实现一个函数,用来计算员工工资:let calcula...原创 2019-05-04 12:18:27 · 156 阅读 · 0 评论 -
JavaScript观察者模式
1、发布订阅模式定义发布订阅模式也叫观察者模式,它定义了对象中一种一对多的依赖关系,当对象的一个状态发生改变时,所有依赖于它的对象都将得到通知。发布订阅模式可以广泛的运用在异步编程中,可以取代回掉函数,比如我们可以监听Ajax的error和success事件。或者我们想在动画完成每一帧后执行一些事件,那我们可以订阅这个事件,在动画每一帧结束后发布这个事件,在异步编程中使用发布于订阅模式,我们不...原创 2019-04-24 16:29:28 · 206 阅读 · 0 评论
分享