设计模式的六大原则|青训营笔记

161 阅读3分钟

这是我参与【第四届青训营】笔记创作活动的第三天。

设计模式六大原则:

  1. 单一职责原则
  2. 里氏替换原则
  3. 依赖倒置原则
  4. 接口隔离原则
  5. 迪米特原则
  6. 开闭原则

六大原则不只是设计模式特有,而是整个面向对象设计中都应当遵守、考虑的原则。 但JS中没有接口概念 作为前端开发人员来说,用的最多的设计原则是S(单一职责原则)、O(开闭原则)

1、单一职责原则(Single Responsibility Principle)

又称单一功能原则,由罗伯特·C.马丁(Robert C.Martin)于《敏捷软件开发:原则、模式和实践》一书中提出的。这里的职责是指类变化的原因,单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分 该原则提出对象不应该承担太多职责,如果一个对象承担了太多的职责,至少存在以下两个缺点:

  1. 一个职责的变化可能会削弱或者抑制这个类实现其他职责的能力;
  2. 当客户端需要该对象的某一个职责时,不得不将其他不需要的职责全都包含进来,从而造成冗余代码或代码的浪费。

单一职责原则的好处

  1. 类的复杂性降低,实现什么职责都有清晰明确的定义;
  2. 可读性高,复杂性降低,可读性自然就提高了;
  3. 可维护性提高,可读性提高了,那自然更容易维护了;
  4. 变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的实现类有影响,对其他的接口无影响,这对系统的扩展性、维护性都有非常大的帮助。

2、开闭原则(open closed principle)

用抽象构建架构,用实现扩展原则;
在面向对象编程领域中,规定 软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的,这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为。该特性在产品化的环境中是特别有价值的,在这种环境中,改变源代码需要代码审查,单元测试以及诸如此类的用以确保产品使用质量的过程。遵循这种原则的代码在扩展时并不发生改变,因此无需上述的过程。
也就是尽量通过扩展软件实体来解决需求变化,而不是通过修改已有的代码来完成变化。 一个软件产品的生命周期内,都会发生变化,既然变化是一个既定的事实,我们就应该在设计的时候,尽量的适应这些变化。以提高项目的稳定性和灵活性。

学无止境。