1、开闭原则
其他六大设计原则的基础。。。
对扩展开放,对修改关闭。
开闭原则是所有原则的基础,就是设计程序时尽量做到新增模块而不是在原有的基础上进行修改。
2、迪米特法则
只与直接的盆友通信
一个对象之中要依赖另一个对象,那这个对象和所依赖的对象就是盆友。
直接的盆友有三种
*成员变量
*方法的参数类型
*方法的返回值类型
迪米特法则就是方法内部的依赖最好是直接的盆友,但没必要为这个法则而进行程序的编写,还是要宏观考虑代码的复杂性。
3、里式替换原则
子类可以扩展父类的功能但子类不可以修改父类的功能。
子类可以实现父类的抽象方法,但是子类不能覆盖父类的抽象方法。
子类中可以扩展自己的方法。
里式替换原则并非是让我们尽量避免使用继承,而是给继承制定了规则,就是子类尽量不要重写父类的方法。
4、依赖倒置原则
注重面向接口的编程,设计松耦合的程序
抽象:接口,抽象类
细节:实现类
依赖关系的三种传递方式 (1)、通过接口传递。(2)、通过构造方法传递。(3)、通过set方法传递。
依赖倒置原则就是让我们在设计程序的时候,要注重接口的设计,设计抽象类,通过实体类的实现,在调用同一个接口的过程中来实现不同的功能,提高代码的低耦合性。
5、接口隔离原则
类间的依赖关系应该建立在最小的接口上(一个接口实现对应的功能)
接口隔离原则就是对接口的拆分,避免不必要的方法被实现类给实现。
6、单一职责原则
一个类只有一个职责(类级别的单一职责原则/方法级别的单一职责原则)
合理的职责分解
单一职责原则就是在实际类或者方法时,尽量细粒化程序,不要写臃肿的代码,尽量实现类级别的单一职责原则。
单一职责原则与接口隔离原则的
相同点:都是对系统进行拆分,要求更小的颗粒度,希望减少耦合。
不同点:审视的角度不同
单一职责原则是类与接口的职责单一,要注重内容的设计。
接口隔离原则是要求我们尽量使用多个接口,注重接口的设计。
在使用接口隔离原则进行接口的拆分时要遵循单一职责原则。
7、合成复用原则
尽量使用组合/聚合的方式而不是继承
合成复用原则有些叫六大原则 ,有些叫七大原则,六大原则不包含合成复用原则,他的意思是类与类之间的依赖最好用调用或者参数传参的方式调用另一个类的方法,而不是使用继承。
设计原则的核心思想
1、找出应用中可能需要变化之处,独立出来,不要和不需要变化的代码混在一起。
2、针对接口编程,而不是针对实现编程。
3、为了交互对象的松耦合设计而努力。
遵循设计原则就是为了让程序:高内聚,低耦合