常见7种面向对象设计原则
- 单一职责原则:一个类只负责一个功能领域中的相关职责。
- 开闭原则:软件实体应对扩展开发,而对修改关闭。
- 里氏代换原则:所有引用父类对象的地方能够透明的使用其子类的对象。
- 依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象。
- 接口隔离原则:使用多个专门的接口,而不使用单一的总接口
- 合成复用原则:尽量使用对象组合,而不是继承达到复用的目的
- 迪米特法则:一个软件实体应当尽可能少的与其他实体发生相互作用
单一职责原则
概述:一个类不能太大,应该一个类只处理一类问题。
开闭原则(目标)
概述:一个对象在设计的时候应该设计成只对扩展开放,对修改关闭。
里氏代换原则
概述:如果将一个父类对象替换成任意一个子类对象,程序不会产生任何错误。反之不一定成立
依赖倒转原则(面向对象设计的主要实现机制之一)
概述:抽象不应该依赖于·细节,细节应该依赖于抽象。(即面向接口编程,而非面向实现编程)
解释:该原则要求尽量引用层次高的抽象层类,即使用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型声明以及数据类型的转换。
根据该原则,一个具体类应当只实现接口或者抽象类中声明过的方法,不得给出多余的方法,否则无法调用在子类中新加的方法。
接口隔离原则
概述:使用多个专门的接口,而不使用单一的接口(即每个接口职责的清晰化、单一化)
合成复用原则
概述:尽量使用对象组合,而不是用继承达到复用。(侧面体现少用继承)
迪米特法则
概述:一个软件实体应该尽可能少的与其他实体发生相互作用。
解释:即减少多个类之间直接的交互,而是改为通过中间类进行交互,降低程序的复杂度。