1、单一职责
就一个类而言,应该仅有一个引起它变化的原因,一个类中,应该是一组相关性很高的函数、数据的封装。
2、开闭原则
软件中的对象(类,模块、函数等)应该对于扩展是开放的,对于修改是封闭的。
3、里氏替换原则
父类出现的地方,子类就可以出现,并且不会产生错误,但是子类可以出现的地方父类未必可以出现。
4、依赖倒置原则
也叫控制反转、依赖注入,模块之间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,依赖关系通过接口或者抽象类产生。
5、接口隔离原则
系统揭开耦合,从而容易更改、重构和部署。
6、迪米特原则
一个类应该对于自己需要耦合的或者调用的类知道最少,类的内部如何实现与调用者或者依赖着没有关系,调用者只需要知道他需要调用的方法即可,其他一概不管。