S | The Single Responsibility Principle | 单一责任原则 |
O | The Open Closed Principle | 开放封闭原则 |
L | The Liskov Substitution Principle | 里氏替换原则 |
D | The Dependency Inversion Principle | 依赖倒置原则 |
I | The Interface Segregation Principle | 接口分离原则 |
当需要修改某个类的时候原因有且只有一个。换句话说就是让一个类只做一种类型责任,当这个类需要承当其他类型的责任的时候,就需要分解这个类。
例如:各个方法和类,只做自己的事情
开放封闭原则 :
软件实体应该是可扩展,而不可修改的。对扩展是开放的,而对修改是封闭的。这个原则是诸多面向对象编程原则中最抽象、最难理解的一个。
例如:验证的类,对于外界调用时开发的,如果我想重新写一个验证的逻辑,值需要我再验证的类里边改,做处理,内部是封闭的。
里氏替换原则 :
当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系
依赖倒置原则:
1. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象
2. 抽象不应该依赖于细节,细节应该依赖于抽象
例如:有一个验证的方法,不写具体验证什么,可以先调用验证,倒置
接口分离原则 :
不能强迫用户去依赖那些他们不使用的接口。换句话说,使用多个专门的接口比使用单一的总接口总要好
例如:电脑上可以插鼠标,键盘,风扇,各个分离,互不影响