地址
英文版地址:https://refactoring.guru/design-patterns
中文版地址:https://refactoringguru.cn/design-patterns
介绍
这个网站是专门学习 设计模式 和 软件重构 的网站
整体来说并不花哨,但我觉得他最大的优点就是:
概念介绍得非常非常深入浅出
这和其他很多介绍设计模式的网站或者文章有很大的不同。
我也读过设计模式经典之作 GoF 的《设计模式:可复用面向对象软件的基础》,可以说是基本读不懂。。。
每一个设计模式都大概遵循了如下的结构
-
概念介绍
- 意图:这个设计模式的简短概括。一般如果对一个设计模式不了解,看着还是有一些糊涂,可以看完后面的内容在回过头来理解一下意图。
- 问题:通过一个实际开发中的遇到的案例,引出不使用设计模式时的困难。
- 解决方案:如何用该设计模式,解决上面问题中遇到的困难。
- 真实世界类比:通过与真实世界中事情的类比,使得对该设计模式的理解变得更加容易。
-
如何实现
- xx模式结构:该设计模式的 UML 图和各部分作用的介绍
- 伪代码:实现该设计模式的伪代码
-
其他补充
- xx模式适合应用场景:什么时候应该想到该设计模式
- 实现方式:具体实现的文字描述(有的时候文字描述要比记住代码或者 UML 图更加容易)
- xx模式优缺点:值得注意的是其缺点部分,很多介绍设计模式的资料都不会太介绍一个设计模式的缺点。
- 与其他模式的关系:我们经常会觉得 xx 模式和 xx 模式很像呀,他们有什么区别和联系呢,这一部分回答了这些疑问。
- 代码示例:各种语言实现该设计模式的具体实现。
额外的提示
这个网站的很多插图都很有意思,尝试着结合具体的设计模式理解这些插图,会让你认识得更加深刻
例如下面这幅插图是 “命令模式” 的插图。总左往右看,其含义是
- 点击 “保存” 按钮,会将一个 “命令对象” 通过弩箭发送出去(并且可以源源不断产生更多的命令对象)
- 另一侧接受者接收到命令对象,并进行相关的操作