一.单一职责原则
就一个类而言,应该仅有一个引起它变化的原因.如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责.
二.开放-封闭原则
对于更改是封闭的,对于扩展是开放的.面对需求,对程序的改动是通过增加代码来实现的,而不是更改现有代码,从而保持相对的稳定.如何做到呢?预测最有可能发生变化的类,构造抽象隔离,对于没有预测到的类,当发生变化时,创建抽象类来隔离,避免以后发生的同类变化.
三.依赖倒转原则
A:高层模块不应该依赖低层模块,两个都应该依赖抽象.
B:抽象不应该依赖细节,细节应该依赖抽象(针对接口编程,不要针对实现编程).
四.里氏代换原则
子类型必须能够替换掉它的父类型(由于子类型的可替换性,才使得使用父类类型的模块在无需修改的情况下就可以扩展)