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