category
前端 分类
2021-06-06
定义
迭代器模式无非就是循环访问聚合对象中的各个元素
迭代器又分内部迭代器和外部迭代器在 js 中,就已经有对应的实现。
内部迭代器如,
Array.prototype.forEach(callback(currentValue [, i
2021-06-06
定义
发布订阅模式又叫观察者模式。它定义对象间的一对多的依赖关系,当一个对象的状态发生变化时,所有订阅它的对象都将收到通知。js 中我们一般用事件模型来代替传统的观察者
应用场景观察者模式在实际中有很多的应用场景,比如:
房产中介发的看
2021-06-06
定义
命令模式中的命令(command)指的是一个执行某些特定事情的指令
应用场景有时候需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是什么。此时希望用一种松耦合的方式来设计程序,使得发送者和请求接收者能够消除
2021-06-06
定义
用小的对象来构建更大的对象,而这些小的对象本身也可能是有更小的对象构成。
用途
组合模式将对象组合成树形结构,以表示 部分-整体的层次结构。此外还可通过对象的多态性表现,使得用户对单个对象和组合对象的使用具有一致性。如下:
在命
2021-06-06
定义
模板方式是一种只需要继承就可以实现的简单的模式
模板由两个部分结构组成,第一个是抽象类,第二部分是具体的实现子类。通常在抽象父类中封装了子类的算法框架,包括实现一些公共方法以及封装子类中所有方法的执行顺序。子类通过继承这个抽象父类,
2021-06-03
定义
保证一个类只有一个实例,并提供一个访问它的全局访问点
常见场景
线程池
全局缓存
浏览器中的 window 对象
最简单的单例就是全局创建一个
var a = {};
使用类创建一个单例对象
var Sing
2021-06-03
单一职责原则(SRP)就一个类而言,应该仅有一个引起它变化的原因。在 js 中,需要用到类的场景不多。单一职责更多的被运用到对象或者方法级别上。
单一职责原则(SRP)被定义为“引起变化的原因”。如果我们有两个动机去改写一个方法,那么这个方
2021-06-03
定义
策略模式就是定义一系列的算法,将他们一个个封装起来。
使用场景在实际开发中,我们需要将算法的含义扩大一些。
比如,策略模式可以有效的拆分 业务逻辑,减少代码中的if .... else....这种分支
假设我们有一个按钮。需要根据
2021-06-03
定义
代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。代理模式的关键是当客户不方便直接访问对象或者不满足需要时。提供一个替身对象来控制对这个对象的访问,客户实际上访问的是替身对象
st=>start: 客户
op=>ope