这是我参与「第四届青训营 」笔记创作活动的的第5天。
前端设计模式
什么是前端设计模式?
设计模式是软件设计中常见问题的解决方案模型。
设计模式
设计模式分为三类
- 创建型设计模式:如何创建一个对象
- 结构型设计模式:如何灵活的将对象组装成较大的结构
- 行为型设计模式:负责对象间的高效通信和职责划分
浏览器中的设计模式
- 单例模式(创建型设计模式):例如浏览器中的
window
对象- 定义:全局唯一访问对象。
- 应用场景:缓存、全局状态管理等。
- 发布订阅模式(行为型设计模式):也叫观察者模式
- 定义:一种订阅模式,可以在被订阅的对象发生改变时告知该对象的订阅者。
- 应用场景:从系统架构之间的解耦到业务中的一些实现模式;如同报纸、邮件等的订阅一样;应用广泛。
JavaScript中的设计模式
- 原型模式(创建型设计模式):使用较少
- 定义:复制已有的对象来创建新的对象。
- 应用:JS中的对象创建。
- 代理模式(结构型设计模式)
- 定义:可自定义控制对原对象的访问方式,并且允许在更新前后做一些额外处理。
- 应用:监控、代理工具、前端框架实现等。
- 迭代器模式(行为型设计模式):例如JS的
forEach
、for...of...
等- 定义:在不暴露数据类型的情况下访问集合中的数据。
- 应用:数据结构中的数据类型、树、列表等,提供通用操作接口。
前端框架中的设计模式
- 代理模式(结构型设计模式)
- 前端框架中对DOM操作的代理
- 原本DOM操作
graph LR 更改DOM属性 --> 视图更新
- 前端框架中对DOM的操作代理
graph LR 更改DOM属性 --> 更新虚拟DOM 更新虚拟DOM --Diff比较算法--> 视图更新
- 原本DOM操作
- 前端框架中对DOM操作的代理
- 组合模式(结构型设计模式)
- 定义:可多个对象组合使用,也可单个对象单独使用
- 应用:DOM、组件等
总结
在开发中应该遵循:即定义的一个方法或者一个类尽量只做一件事情;使用多编程范式可以解决传统面向对象编程会出现的部分问题。