设计模式原则

单一职责

单一职责原则的准确定义为:就一个类而言,应该仅用一个引起它变化的原因

其本质上是为了满足 低耦合 的需求。若一个类承担的职责过多,就会导致其本身应有的职责被削弱,当变化发生时,已有的类可能会发生意想不到的破坏,导致类的设计变得脆弱。因此, 能引起类状态改变的动机应当不多于一种

开闭原则

开闭原则 OCP (The Open-Closeed Principle) 的准确定义为:对于拓展是开放的,对于更改是封闭的

开闭原则意味着当你得到新需求时,应当尽可能拓展已有代码,而不是修改已有代码。其主要可以通过一下几种方式:

  • 设计人员在设计时就猜测出最有可能发生变化的类,并对其进行抽象

  • 在设计之初假设不会发生变化,一旦发生变化就通过重构将类似变化进行抽象,防止以后发生的同类变化

开闭原则需要注意:

  • 查明变化的时间越久,建立正确的抽象就越难

  • 泛滥的抽象必定会导致系统的臃肿,因此,拒绝不成熟的抽象和抽象本身一样重要

里氏替换原则

里氏替换原则的准确定义为:子类型必须能够替换掉它们的父类型

实质上指的是 is-a 关系,在 C 中意味着公有继承。简单来说就是:任何适用于父类的方法都可以用于其子类。footnote:[Effective C 第三版:条款35]

依赖倒置原则

依赖倒置原则的准确定义为:抽象不应该依赖于细节,细节应该依赖于抽象

简单来讲,就是应当针对接口编程,而不是针对实现编程。

接口隔离原则

其准确定义为:类之间依赖关系应该建立在最小的接口上

简单来说,应当将复杂的系统拆分未多个简单接口。

迪米特法则

迪米特法则也叫最小知识原则,其准确定义为:如果两个类不必彼此直接通信,那么这两个类不应当发生直接的相互作用,如果一个类调用另一个类的某个方法时,可以通过第三者转发此调用。 其根本指导思想为降低类之间的耦合关系,方法为在类的设计中,尽量降低成员的访问权限。其途径有:

  • 尽量减少可以对类数据成员的访问的函数

耦合度越低,其可复用性越强。

Last moify: 2022-12-04 15:11:33
Build time:2025-07-18 09:41:42
Powered By asphinx