1、单一职责
任何一个类只负责一项职责,若一个类A负责多个不同职责,则应该将类A分解为多个类A、B、C等
2、接口隔离原则
一个类不应该依赖它不需要的接口,即对于一个类所依赖的接口应该为最小粒度,如:若A类依赖K接口,K接口中有m1()方法和m2方法,而A类只需要用到m1方法,根据接口隔离原则,K接口应该拆成两个接口。
3、依赖倒转原则
- 高层模块不应该依赖底层模块,两者都应该依赖其抽象
- 抽象不应该依赖细节,细节应该依赖抽象
- 依赖倒转原则的核心思想是面向接口编程,其设计理念是相对于细节的多变性,抽象的东西更稳定
4、里氏替换原则
如果类A有个方法m(),B继承了A,若A和B都要用到方法m(),(B重写m方法)此时出现的多态调用可能会影响旧的代码。
所以,里氏替换原则说,应该把m()方法抽到一个Base类中,A和B类依赖Base类
5、开闭原则
对拓展开放,对修改关闭
6、迪米特法则
最少知道原则,一个类对自己依赖的类知道的越少越好(get/set方法)
7、合成复用原则
尽量使用合成/聚合的方式,而不是继承(依赖注入)