S(Single Responsibility Principle):单一责任原则编程
O(Open Closed Principle):开放封闭原则对象
L(Liskov Substitution Principle):里氏替换原则接口
L(Law of Demeter):迪米特法则ip
I(Interface Segregation Principle):接口分离原则ci
D(Dependence Inversion Principle):依赖倒置原则it
单一责任原则:
当须要修改某个类的时候缘由有且只有一个(THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE)。换句话说就是让一个类只作一种类型责任,当这个类须要承当其余类型的责任的时候,就须要分解这个类。 就是一个类只负责一个职责io
开放封闭原则
软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。这个原则是诸多面向对象编程原则中最抽象,开闭原则中的对扩展开放,若是在项目中添加一个功能的时候,能够直接对代码进行扩展。若是要修改某一部分的功能时,咱们应该作的是,尽可能少作修改(彻底不修改是不可能的),可是修改的时候,要保留原来的功能,只是在上面扩展出新的功能,就像版本更新同样,更新后,依然支持旧版本。面向对象编程
里氏替换原则
当一个子类的实例应该可以替换任何其超类的实例时,它们之间才具备is-A关系 ast
迪米特原则 扩展
迪米特法则也叫最少知道原则(Least Knowledge Principle, LKP ),虽然名称不一样,但都是同一个意思:一个对象应该对其余对象有最少的了解,好比:咱们在写一个类的时候,应该尽量的少暴露本身的接口。在写类的时候,能不 public 就不 public ,全部暴露的属性或是接口,都是不得不暴露的,这样的话,就能保证其余类对这个类有最少的了解了。
依赖倒置原则
1. 高层模块不该该依赖于低层模块,两者都应该依赖于抽象
2. 抽象不该该依赖于细节
3. 细节应该依赖于抽象
咱们要尽量使用接口或抽象类。也就是“面向接口编程” 或者说 “面向抽象编程” ,也就是说程序中要尽量使用抽象类或是接口,任何类都不该该从具体类中派生
接口分离原则 不能强迫用户去依赖那些他们不使用的接口。使用多个专门的接口比使用单一的总接口总要好。客户端不该该依赖它不须要的接口,类间的依赖关系应该创建在最小的接口上。单一职责原则是按照 职责进行划分接口的,而接口隔离原则则是按照实现类对方法的使用来划分的