前端设计模式应用 | 青训营笔记

66 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第5天。

前端设计模式

什么是前端设计模式?

设计模式是软件设计中常见问题的解决方案模型。

设计模式

设计模式分为三类

  • 创建型设计模式:如何创建一个对象
  • 结构型设计模式:如何灵活的将对象组装成较大的结构
  • 行为型设计模式:负责对象间的高效通信和职责划分

浏览器中的设计模式

  • 单例模式(创建型设计模式):例如浏览器中的window对象
    • 定义:全局唯一访问对象。
    • 应用场景:缓存、全局状态管理等。
  • 发布订阅模式(行为型设计模式):也叫观察者模式
    • 定义:一种订阅模式,可以在被订阅的对象发生改变时告知该对象的订阅者。
    • 应用场景:从系统架构之间的解耦到业务中的一些实现模式;如同报纸、邮件等的订阅一样;应用广泛。

JavaScript中的设计模式

  • 原型模式(创建型设计模式):使用较少
    • 定义:复制已有的对象来创建新的对象。
    • 应用:JS中的对象创建。
  • 代理模式(结构型设计模式)
    • 定义:可自定义控制对原对象的访问方式,并且允许在更新前后做一些额外处理。
    • 应用:监控、代理工具、前端框架实现等。
  • 迭代器模式(行为型设计模式):例如JS的forEachfor...of...
    • 定义:在不暴露数据类型的情况下访问集合中的数据。
    • 应用:数据结构中的数据类型、树、列表等,提供通用操作接口。

前端框架中的设计模式

  • 代理模式(结构型设计模式)
    • 前端框架中对DOM操作的代理
      • 原本DOM操作
        graph LR
        更改DOM属性 --> 视图更新
        
      • 前端框架中对DOM的操作代理
        graph LR
        更改DOM属性 --> 更新虚拟DOM
        更新虚拟DOM --Diff比较算法--> 视图更新
        
  • 组合模式(结构型设计模式)
    • 定义:可多个对象组合使用,也可单个对象单独使用
    • 应用:DOM、组件等

总结

在开发中应该遵循单一职责原则\textcolor{orange}{单一职责原则}:即定义的一个方法或者一个类尽量只做一件事情;使用多编程范式可以解决传统面向对象编程会出现的部分问题。