【青训营】- 第11天学JavaScript中设计模式

187 阅读2分钟

定义

设计模式:在软件设计过程中,针对特定问题的简洁而优雅的解决方案

【经验-合理运用-解决问题】

graph TD
经验 --> 合理运用 --> 解决问题

SOLID原则

  1. Single 单一职责原则,一个程序制做好一件事
  2. Open 开放封闭原则,对扩展开放对修改封闭
  3. L里氏置换原则
  4. I接口独立原则
  5. D依赖导致原则

优势和应用场景

  1. 易读性
  2. 可拓展性
  3. 复用性
  4. 可靠性:增强健壮性,使代码编写真正工程化。

8个常见设计模式及应用

  1. 单例模式
  2. 策略模式
  3. 代理模式
  4. 发布订阅模式
  5. 命令模式
  6. 组合模式
  7. 装饰器模式
  8. 适配器模式

1. 单例模式

可以全局访问的唯一实例。

应用场景:能被缓存的内容,例如登录弹框。

2. 策略模式

定义一系列算法,把它们一个个封装起来,并且使它们可以互相替换。把看似毫无联系的代码提取封装、复用,使之更容易被理解和拓展。

应用场景:要完成一件事,有不同的策略。例如绩效计算、表单验证规则。

3. 代理模式

为一个对象提供一个代用品或占位符,以便控制对它的访问。替身对象可对请求预先进行处理,再决定是否转交给本体对象。

应用场景: 当我们不方便直接访问某个对象时,或不满足需求时,可考虑使用一个替身对象来控制该对象的访问。

4. 发布订阅模式

对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。

应用场景: DOM事件、消息通知。

5. 命令模式

执行某些特定事情的指令

应用场景:富文本编辑器工具栏。

6. 组合模式

用小的子对象来构建更大的对象,将对象组合成树形结构,以表示“部分-整体”的层次结构。

应用场景:从is-a到has-a。

7. 装饰器模式

能够在不改变对象自身的基础上,在程序运行期间给对象动态地添加职责。

应用场景:数据上报、统计函数执行时间。

8. 适配器模式

解决两个软件实体间的接口不兼容问题,不需要改变已有的接口,就能够使它们协同作用。

应用场景: 接口不兼容的情况。

总结 & QA

graph TD
理解思想 --> 合理使用 --> 总结经验 --> 融汇贯通

设计模式和在JavaScript中的设计模式十分有趣,老师课件里的准备的应用场景demo也特别经典,简明易懂。