设计模式学习优质网站分享:refactoring.guru

地址

英文版地址https://refactoring.guru/design-patterns
中文版地址https://refactoringguru.cn/design-patterns

介绍

这个网站是专门学习 设计模式软件重构 的网站

整体来说并不花哨,但我觉得他最大的优点就是:

++概念介绍得非常非常深入浅出++

这和其他很多介绍设计模式的网站或者文章有很大的不同。

我也读过设计模式经典之作 GoF 的《设计模式:可复用面向对象软件的基础》,可以说是基本读不懂。。。

每一个设计模式都大概遵循了如下的结构

  • 概念介绍

    1. 意图:这个设计模式的简短概括。一般如果对一个设计模式不了解,看着还是有一些糊涂,可以看完后面的内容在回过头来理解一下意图。
    2. 问题:通过一个实际开发中的遇到的案例,引出不使用设计模式时的困难。
    3. 解决方案:如何用该设计模式,解决上面问题中遇到的困难。
    4. 真实世界类比:通过与真实世界中事情的类比,使得对该设计模式的理解变得更加容易。
  • 如何实现

    1. xx模式结构:该设计模式的 UML 图和各部分作用的介绍
    2. 伪代码:实现该设计模式的伪代码
  • 其他补充

    1. xx模式适合应用场景:什么时候应该想到该设计模式
    2. 实现方式:具体实现的文字描述(有的时候文字描述要比记住代码或者 UML 图更加容易)
    3. xx模式优缺点:值得注意的是其缺点部分,很多介绍设计模式的资料都不会太介绍一个设计模式的缺点。
    4. 与其他模式的关系:我们经常会觉得 xx 模式和 xx 模式很像呀,他们有什么区别和联系呢,这一部分回答了这些疑问。
    5. 代码示例:各种语言实现该设计模式的具体实现。

额外的提示

这个网站的很多插图都很有意思,尝试着结合具体的设计模式理解这些插图,会让你认识得更加深刻

例如下面这幅插图是 "命令模式" 的插图。总左往右看,其含义是

  • 点击 "保存" 按钮,会将一个 "命令对象" 通过弩箭发送出去(并且可以源源不断产生更多的命令对象)
  • 另一侧接受者接收到命令对象,并进行相关的操作
相关推荐
CSDN_PBB3 小时前
[STM32 - 野火] - - - 固件库学习笔记 - - - 十五.设置FLASH的读写保护及解除
笔记·stm32·学习
鸡啄米的时光机7 小时前
vscode的一些实用操作
vscode·学习
鎈卟誃筅甡7 小时前
JavaScript设计模式 -- 迭代器模式
设计模式·迭代器模式
xiangxiongfly9157 小时前
Java 设计模式之迭代器模式
java·设计模式·迭代器模式
FLZJ_KL7 小时前
【设计模式】【行为型模式】迭代器模式(Iterator)
java·设计模式·迭代器模式
卷福同学7 小时前
设计模式2:单例模式
java·单例模式·设计模式
Kai HVZ7 小时前
《深度学习》——调整学习率和保存使用最优模型
人工智能·深度学习·学习
Resean02238 小时前
架构设计系列(四):设计模式
java·设计模式·架构·系统架构
依恋、阳光8 小时前
建造者模式构建对象
java·设计模式·建造者模式·类与对象
守护者1708 小时前
JAVA学习-练习试用Java实现“使用Apache Ignite对大数据进行内存计算和快速筛查”
java·学习