设计原则

单一职责原则(SRP)

一个对象或方法只做一件事情。如果一个对象或方法承担过多功能,当需求变更的时候,这个方法改写的可能性就比较大。
应该把对象和方法分成较小粒度。

最少知识原则(LKP)

一个软件实体尽可能少的和实体发生相互作用。
应当尽量减少对象之间的交互。如果两个对象之间不彼此直接通信,那么这两个对象就不要发生直接的相互联系,可以转交给第三方进行处理。

开放-封闭原则

软件实体(类、模块、函数)等应该是可以扩展的,但是不可修改。
当需要改变一个程序的功能或者给这个程序增加新功能的时候,可以使用增加代码的方式。尽量避免改动程序的源代码,防止影响原系统的稳定。

什么是设计模式

作者的这个说明解释得挺好

假设有一个空房间,我们要日复一日地往里 面放一些东西。最简单的办法当然是把这些东西 直接扔进去,但是时间久了,就会发现很难从这 个房子里找到自己想要的东西,要调整某几样东 西的位置也不容易。所以在房间里做一些柜子也 许是个更好的选择,虽然柜子会增加我们的成 本,但它可以在维护阶段为我们带来好处。使用 这些柜子存放东西的规则,或许就是一种模式

学习设计模式,有助于写出可复用和可维护性高的程序
设计模式的原则是“找出 程序中变化的地方,并将变化封装起来”,它的关键是意图,而不是结构。
不过要注意,使用不当的话,可能会事倍功半。

一、单例模式

二、策略模式

三、代理模式

四、迭代器模式

五、发布—订阅模式

六、命令模式

七、组合模式

八、模板方法模式

九、享元模式

十、职责链模式

十一、中介者模式

十二、装饰者模式

十三、状态模式

十四、适配器模式

十五、外观模式

JavaScript中常见的十五种设计模式

JS设计模式

常见的6种JavaScript设计模式

详解 Javascript十大常用设计模式

JS常用设计模式(MVC、MVP、MVVM及其他设计模式)