定义
设计模式:在软件设计过程中,针对特定问题的简洁而优雅的解决方案
【经验-合理运用-解决问题】
graph TD
经验 --> 合理运用 --> 解决问题
SOLID原则
Single
单一职责原则,一个程序制做好一件事Open
开放封闭原则,对扩展开放对修改封闭L
里氏置换原则I
接口独立原则D
依赖导致原则
优势和应用场景
- 易读性
- 可拓展性
- 复用性
- 可靠性:增强健壮性,使代码编写真正工程化。
8个常见设计模式及应用
- 单例模式
- 策略模式
- 代理模式
- 发布订阅模式
- 命令模式
- 组合模式
- 装饰器模式
- 适配器模式
1. 单例模式
可以全局访问的唯一实例。
应用场景:能被缓存的内容,例如登录弹框。
2. 策略模式
定义一系列算法,把它们一个个封装起来,并且使它们可以互相替换。把看似毫无联系的代码提取封装、复用,使之更容易被理解和拓展。
应用场景:要完成一件事,有不同的策略。例如绩效计算、表单验证规则。
3. 代理模式
为一个对象提供一个代用品或占位符,以便控制对它的访问。替身对象可对请求预先进行处理,再决定是否转交给本体对象。
应用场景: 当我们不方便直接访问某个对象时,或不满足需求时,可考虑使用一个替身对象来控制该对象的访问。
4. 发布订阅模式
对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。
应用场景: DOM事件、消息通知。
5. 命令模式
执行某些特定事情的指令
应用场景:富文本编辑器工具栏。
6. 组合模式
用小的子对象来构建更大的对象,将对象组合成树形结构,以表示“部分-整体”的层次结构。
应用场景:从is-a到has-a。
7. 装饰器模式
能够在不改变对象自身的基础上,在程序运行期间给对象动态地添加职责。
应用场景:数据上报、统计函数执行时间。
8. 适配器模式
解决两个软件实体间的接口不兼容问题,不需要改变已有的接口,就能够使它们协同作用。
应用场景: 接口不兼容的情况。
总结 & QA
graph TD
理解思想 --> 合理使用 --> 总结经验 --> 融汇贯通
设计模式和在JavaScript中的设计模式十分有趣,老师课件里的准备的应用场景demo也特别经典,简明易懂。