精读《设计模式 - Template Method 模版模式》

2021-03-22
阅读 2 分钟
1.9k
意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

精读《设计模式 - Strategy 策略模式》

2021-03-15
阅读 2 分钟
4.5k
策略是个形象的表述,所谓策略就是方案,我们都知道任何事情都有多种方案,而且不同方案都能解决问题,所以这些方案可以相互替换。我们将方案从问题中抽象出来,这样就可以抛开问题,单独优化方案了,这就是策略模式的核心思想。

精读《设计模式 - State 状态模式》

2021-03-08
阅读 3 分钟
2.7k
简单来说,就是将 “一个大 class + 一堆 if else” 替换为 “一堆小 class”。一堆小 class 就是一堆状态,用一堆状态代替 if else 会更好拓展与维护。

精读《设计模式 - Observer 观察者模式》

2021-03-01
阅读 3 分钟
1.7k
拿项目的 npm 依赖举例子:npm 包与项目是一对多的关系(一个 npm 包被多个项目使用),当 npm 包发布新版本时,如果所有依赖于它的项目都能得到通知,并自动更新这个包的版本号,那么就解决了包版本更新的问题,这就是观察者模式要解决的基本问题。

精读《设计模式 - Memoto 备忘录模式》

2021-02-22
阅读 4 分钟
4.4k
其实备忘录模式思想非常简单,其核心是定义了一个 Memoto(备忘录) 封装对象,由这个对象处理原始对象的状态捕获与还原,其他地方不需要感知其内部数据结构和实现原理,而且 Memoto 对象本身结构也非常简单,只有 getState 与 setState 一存一取两个方法,后面会详细讲解。

精读《设计模式 - Iterator 迭代器模式》

2021-01-25
阅读 3 分钟
4k
这种设计模式要解决的根本问题是,聚合的种类有很多,比如对象、链表、数组、甚至自定义结构,但遍历这些结构时,不同结构的遍历方式又不同,所以我们必须了解每种结构的内部定义才能遍历。

精读《设计模式 - Command 命令模式》

2021-01-11
阅读 2 分钟
1.8k
如果看不懂上面的意图介绍,没有关系,设计模式需要在日常工作里用起来,结合例子可以加深你的理解,下面我准备了三个例子,让你体会什么场景下会用到这种设计模式。
封面图

精读《设计模式 - Facade 外观模式》

2020-12-07
阅读 2 分钟
2k
如果看不懂上面的意图介绍,没有关系,设计模式需要在日常工作里用起来,结合例子可以加深你的理解,下面我准备了三个例子,让你体会什么场景下会用到这种设计模式。

精读《设计模式 - Decorator 装饰器模式》

2020-11-30
阅读 3 分钟
1.9k
如果看不懂上面的意图介绍,没有关系,设计模式需要在日常工作里用起来,结合例子可以加深你的理解,下面我准备了三个例子,让你体会什么场景下会用到这种设计模式。

精读《设计模式 - Composite 组合模式》

2020-11-23
阅读 3 分钟
2.1k
如果看不懂上面的意图介绍,没有关系,设计模式需要在日常工作里用起来,结合例子可以加深你的理解,下面我准备了三个例子,让你体会什么场景下会用到这种设计模式。

精读《设计模式 - Bridge 桥接模式》

2020-11-16
阅读 3 分钟
2.3k
如果看不懂上面的意图介绍,没有关系,设计模式需要在日常工作里用起来,结合例子可以加深你的理解,下面我准备了三个例子,让你体会什么场景下会用到这种设计模式。

精读《设计模式 - Factory Method 工厂方法》

2020-10-19
阅读 3 分钟
2.2k
理解如何写出工厂方法很简单,但理解为什么要用工厂方法就需要动动脑子了。工厂方法看似简单的将 New 替换为一个函数,其实是体现了面向接口编程的思路,它创建的对象其实是一个符合通用接口的通用对象,这个对象的具体实现可以随意替换,以达到通用性目的。

精读《设计模式 - Abstract Factory 抽象工厂》

2020-09-21
阅读 4 分钟
3.1k
Abstract Factory(抽象工厂)属于创建型模式,工厂类模式抽象程度从低到高分为:简单工厂模式 -> 工厂模式 -> 抽象工厂模式。