- 如何提高一个软件系统的可维护性和可父用性是面向对象设计需要解决的核心问题之一。
- 原则目的:高内聚,低耦合。高内聚值,一个类或函数仅实现一个功能。降低类与类之间的耦合关系。
- 设计原则表:
名称 | 定义 |
---|---|
单一职责原则(Single Responsibility Principle) | 类的职责单一,对外只提供一种功能,而引起类变化的原因都应该只有一个 |
开闭原则(Open-Closed Principle) | 类的改动是通过增加代码进行的,而不是修改源代码 |
里氏替换原则(Liskov Substitution Principle) | 任何抽象类出现的地方都可以用它的实现类进行替换,实际就是虚拟机制,语言级别实现面向对象功能(多态) |
依赖倒转原则(Dependence Inversion Principle) | 依赖抽象(接口),不要依赖具体的实现(类),即针对接口编程 |
接口隔离原则(Interface Segregation Principle) | 不应该强迫用户的程序依赖不需要的接口方法。一个接口只提供一种对外功能。 |
合成复用原则(Composite Reuse Principle) | 如果使用继承,会导致父类的任何变换都可能影响到子类的行为。而使用对象组合,就降低了这种依赖关系。对于继承和组合,优先使用组合。 |
迪米特法则(Law of Demeter) | 一个对象应当对其他对象尽可能少的了解,从而降低各个对象之间的耦合,提高系统的可维护性。(即对不需要对外公开的,使用private或protected) |
- 开闭原则:对扩展开放,对修改关闭,增加功能是通过增加代码实现,而不是修改源代码
- 依赖倒转原则:传统的设计倾向于高层次的模块依赖于低层次的模块,抽象层依赖与具体的层次。此时,中间层模块和高层模块的耦合极高。####依赖倒转原则,高层业务逻辑依赖于抽象层,而具体实现层同样依赖抽象层