单一职责原则(SRP)
定义
一个对象只包含一个单一职责,而且该职责被完整地封装在一个类中。即只有一个原因可以使类变更。
意义
是实现高内聚、低耦合设计的指导方针。如果一个类所承担的职责越多,职责之间的耦合程度越高,类被复用的可能性越低。
开放封闭原则(OCP)
定义
对扩展开放,对修改封闭
意义
不允许修改抽象类或者接口,允许扩展具体的实现类。
可以帮助软件实现更好的抽象化。具体实践中,找到系统的可变因素,将其封装起来。而不要将可变元素散落在程序的每个角落,导致对变化不敏捷。
里氏替换原则(LSP)
定义
任何基类出现的地方,子类也可以出现。保证子类能够替换所有基类出现的地方
意义
是多态背后的原则,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象
接口隔离原则(ISL)
定义
接口不应该太大,用户仅需要知道与之相关的方法
意义
尽可能的为用户提供小的单独的接口,而不提供大的总接口。
只提供用户所需要的行为,隐藏用户不需要的行为。
依赖倒置原则(DIP)
定义
依赖抽象而不依赖具体的实现。
抽象不应当依赖于细节;细节应当依赖于抽象
要面向接口编程,而不是是面向实现编程
意义
当我们选择面向接口编程时,我们就对变化十分敏捷,从而实现对扩展开放,对修改封闭原则。
同时我们在实践中,也会使用依赖注入。也就是说当一个类对另一个类依赖时,我们可以将抽象类注入到依赖类中,从而实现依赖关系。