0%
面向对象设计原则
总原则:开闭原则
- 软件实体应当对扩展开放,对修改关闭
- 进行拓展的时候,不能去修改原有的代码
单一职责原则
- 单一职责原则规定一个类应该有且仅有一个引起它变化的原因
- 对象不应该承担太多职责
- 一个类,就干他该干的事,不参合其他的功能
里氏替换原则
- 任何基类可以出现的地方,子类一定可以出现
- 任何在使用基类的地方,可以完全的替换成其子类而对应的功能不会发生变化。
依赖倒转原则
- 开闭原则的基础
- 面向接口编程,依赖于抽象而不依赖于具体。
- 变量的声明类型尽量是接口或者是抽象类
- 任何类都不应该从具体类派生。
- 每个类尽量提供接口或抽象类,或者两者都具备。
- 写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互。不关于类内部的功能,只关心他的上层接口提供有什么功能。
接口隔离原则
- 要为各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。
- 单一职责原则注重的是职责,而接口隔离原则注重的是对接口依赖的隔离。
- 单一职责原则主要是约束类,它针对的是程序中的实现和细节;接口隔离原则主要约束接口,主要针对抽象和程序整体框架的构建。
迪米特法则(最少知道原则)
- 如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。
- “朋友”:当前对象本身、当前对象的成员对象、当前对象所创建的对象、当前对象的方法参数等
- 过度使用迪米特法则会使系统产生大量的中介类,从而增加系统的复杂性,使模块之间的通信效率降低。
合成复用原则