设计模式(一)——开始:再出发-道与术

设计模式(一)——开始:再出发-道与术

·

1 min read

设计模式之道

设计模式中每一个模式描述了一个我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,我们就能一次又一次地使用该方案而不必做重复劳动。

设计模式出现的背景,是软件设计的复杂度日益飙升。软件设计越来越复杂的”罪魁祸首“,就是变化。而在实际开发中,不发生变化的代码可以说是不存在的。我们能做的只有将这个变化造成的影响最小化——将变与不变分离,确保变化的部分灵活、不变的部分稳定。

所以,我觉得设计模式的核心思想就是封装变化。

在设计模式中SOLID设计原则为其指导理论,它可以帮助我们规避不良的软件设计。SOLID指代的五个基本原则分别是:

  • 单一功能原则
  • 开放封闭原则
  • 里氏替换原则
  • 接口隔离原则
  • 依赖反转原则

其实这五个原则对于在JavaScript设计模式中并不需要全部掌握,主要用到的设计模式基本都围绕”单一功能“和“开放封闭”这两个原则来展开。

设计模式之术

在《设计模式:可复用面向对象软件的基础》这本书中阐述了23种最经典的设计模式。书中,将23种设计模式按照创建型、行为型和结构型进行划分。

不论是创建型、结构型还是行为型,这些具体的设计模式都是在用自己的方式去封装不同类型的变化——创建型封装了创建对象过程中的变化,目的在于将创建对象的过程抽离;结构型封装了对象之间组合方式的变化,目的在于灵活地表达对象间的配合与依赖关系;行为型封装了对象千变万化的行为,目的在于确保我们能够更信任地对行为进行更改。

封装变化,它是一种防患于未然的行为——提前抽离了变化,就为后续的拓展提供了无限的可能性,如此,我们才能做到在变化到来的时候从容不迫。

设计模式前端化,不仅是一类语言到另一类语言这么简单,强类型语言不仅和JavaScript之间存在着基本语法的差异,还存在着应用场景的差异。在这个过程中,场景是基础,代码是辅助,逻辑是主角。