设计即按照一种思路或者标准来实现功能 结合《UNIX/LINUX设计哲学》,设计可总结为:
设计原则是设计模式的指导理论,它可以帮助我们规避不良的软件设计 SOLID 指代的五个基本原则分别是:
在 JavaScript 设计模式中,主要用到的设计模式基本都围绕“单一功能”和“开放封闭”这两个原则来展开
设计模式出现的背景,是软件设计的复杂度日益飙升,软件设计越来越复杂的“罪魁祸首”,就是变化
举个例子, 我们写一个业务,这个业务是一潭死水,初始版本是 1.0,100 年后还是 1.0,不接受任何迭代和优化,那么这个业务只要实现功能就行了,完全不需要考虑可维护性、可扩展性
但实际开发中,不发生变化的代码可以说是不存在的 我们能做的只有将这个变化造成的影响最小化 —— 将变与不变分离,确保变化的部分灵活、不变的部分稳定
这个过程,就叫“封装变化” 这样的代码,就是我们所谓的“健壮”的代码,它可以经得起变化的考验,而设计模式出现的意义,就是帮我们写出这样的代码

无论是创建型、结构型还是行为型,这些具体的设计模式都是在用自己的方式去封装不同类型的变化
创建型模式封装了创建对象过程中的变化,比如工厂模式,它做的事情就是将创建对象的过程抽离; 结构型模式封装的是对象之间组合方式的变化,目的在于灵活地表达对象间的配合与依赖关系; 而行为型模式则将是对象千变万化的行为进行抽离,确保我们能够更安全、更方便地对行为进行更改。
封装变化,封装的正是软件中那些不稳定的要素,它是一种防患于未然的行为 —— 提前抽离了变化,就为后续的拓展提供了无限的可能性,如此,我们才能做到在变化到来的时候从容不迫。