单一职责原则
就一个类而言,应该仅有一个引起它变化的原因。
开放-封闭原则
软件实体(类、函数)应该对扩展开放,对修改封闭。
依赖倒置原则
抽象不应该依赖细节,细节应该依赖于抽象。
高层模块不应该依赖底层模块。应该针对接口编程,依赖于抽象而不依赖于具体,依赖具体就是所谓的耦合。
里式替换原则
子类型必须能够替换掉它的父类型。
迪米特法则(最少知识原则)
在类的结构设计上,每个类应该尽量降低成员的访问权限。如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类要调用另一个类的一个方法的话,应该由第三者转发。
接口隔离原则
在设计接口类的时候,也应该遵守单一职责原则。比如手机有键盘和通讯模块,如果想制作玩具手机,那么通讯模块就是多余的。
合成复用原则
尽量使用组合方式,而非继承。