S O L I D
https://developer.aliyun.com/article/226577
68747470733a2f2f63646e2d696d616765732d312e6d656469756d2e636f6d2f6d61782f3830302f312a796b6444716d30364b524931584474763334623242512e706e67.png

S:单一职责原则 (SRP)

single responsibility principle
一个程序只做一件事情
一个类只能有一种职责,并且只能完成它设计的功能任务

O:开放封闭原则(OCP)

open closed principle
对扩展开放,对修改封闭

增加新需求,扩展新代码,而不是修改已有的代码

L:里氏替换原则(LSP)

liskov substitution principle
程序里的对象都应该可以被它的子类实例替换而不用更改程序
子类能覆盖父类,父类能出现的地方子类就能出现
(js中使用较少)

I:接口独立原则,接口隔离(ISP)

interface segregation principle
一个类不要实现它不会用到的接口
保持接口的单一独立

D:依赖倒置原则,依赖反转,依赖倒转(DIP)

dependency inversion principle
高层次的模块不应该依赖于低层次的模块
一个特定的类不应该直接依赖于另外一个类,但是可以依赖于这个类的抽象(接口)
面向接口(抽象)编程,依赖于抽象而不依赖于具体
使用方只关注接口,而不关注具体类的实现
(js中使用较少)