1. 单一职责原则
一个类应该是由一组相关性很高的函数、数据的封装,是能够体现它的单一的职责的封装,相反地,一个类不应该有多于1个的职责,不一样的功能不应该放在一个类种,即一类一职责/一功能
2. 开闭原则
简单说,就是修改是封闭的,扩展是开放的:当有新的功能需要实现或者功能需要修改时,不应该通过修改源代码实现,而是通过扩展的方式来实现变化,避免对原来功能的造成不好的影响
3. 里氏替换原则
简单说,就是只要父类能出现的地方,父类的子类也能够出现,并且不会产生任何错误或者异常
4. 依赖倒置原则
简单说,就是模块之间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,它们的依赖关系通过接口或者抽象类产生,也就是面向抽象编程,这样可以避免修改一个模块时,牵动另一个模块的修改
5. 接口隔离原则
简单说,就是让客户端依赖的接口尽可能地小,尽可能只提供客户端需要的接口和服务,而没有冗余接口或服务
6. 迪米特原则
简单说,就是一个类应该对自己需要耦合或者调用的类知道得最少,让被调用者最可能地像一个黑盒