五大设计原则
S-单一职责原则
- 一个程序只做好一件事
- 如果功能过于复杂就拆分开,每个部分保持独立
O-开放封闭原则
- 对扩展开放,对修改封闭
- 增加需求是,扩展新代码,而非修改已有代码
- 这是软件设计的终极目标
L-李氏置换原则
- 子类能覆盖父类
- 父类能出现的地方子类就能出现
- JS中使用较少(弱类型&继承使用较少)
I-接口独立原则
- 保持接口的单一独立,避免出现‘胖接口’
- JS中没有接口(TS例外),使用较少
- 类似于单一职责原则,这里更关注接口
D-依赖倒置原则
- 面向接口编程,依赖于抽象而不依赖具体(你在使用接口的时候只需要知道输入输出而不需要知道内部实现原理)
- 使用方只关注接口而不关注具体类的实现
- JS中使用较少(没有接口&弱类型)
设计模式
工厂模式
通过工厂模式,将创建产品实例的权利移交工厂,我们不再通过new来创建我们所需的对象,而是通过工厂来获取我们需要的产品。降低了产品使用者与使用者之间的耦合关系。
例子:
JQuery中的$就相当于工厂它会直接返还给我们一个JQuery对象,从而使我们不用自己new一个JQuery对象
单例模式
单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时,为了防止频繁地创建对象使得内存飙升,单例模式可以让程序仅在内存中创建一个对象,让所有需要调用的地方都共享这一单例对象。
例子
比如说 vuex中的store和redux中的store他们就是在同一个实例化对象上进行操作的