image

编辑人: 长安花落尽

calendar2025-07-20

message4

visits144

强化阶段第 5 - 6 周:设计模式深化之备忘录模式精讲

在系统架构设计师的备考过程中,到了强化阶段的第 5 - 6 周,深入理解备忘录模式是非常关键的一步。

备忘录模式涉及三个重要角色:原发器、备忘录和负责人。

一、原发器(Originator)
1. 知识点内容
- 原发器是发起创建一个备忘录的对象。它可以包含需要保存的状态信息。例如,在一个文档编辑系统中,文档编辑器就是原发器,它记录着文档的当前文本内容、字体格式、段落排版等各种状态。
- 原发器还负责从备忘录中恢复自身的状态。当用户想要撤销之前的操作并回到某个历史版本时,原发器会从负责人那里获取相应的备忘录,并根据备忘录中的信息重新设置自己的状态。
2. 学习方法
- 理解原发器的关键是将其与实际的应用场景相结合。可以通过分析常见的软件系统中的类似功能来加深认识,如文本编辑软件的“撤销”功能背后的原发器逻辑。
- 绘制简单的类图来表示原发器与其他角色的关系,有助于从宏观上把握其作用。

二、备忘录(Memento)
1. 知识点内容
- 备忘录是用来存储原发器的内部状态的载体。它包含了原发器在某个特定时刻的所有需要保存的信息。但是,备忘录应该对其他对象隐藏其内部的具体实现细节,只提供必要的接口给原发器和负责人进行交互。
- 在版本控制系统中,每一个版本的文件状态可以看作是一个备忘录。它记录了文件的特定版本的属性,如代码行数、函数定义、变量值等。
2. 学习方法
- 可以通过编写简单的代码示例来创建备忘录类,定义其存储状态的数据结构,并设置合适的访问权限。
- 研究一些开源项目中的备忘录实现方式,学习如何在实际项目中优化备忘录的设计以提高效率和安全性。

三、负责人(Caretaker)
1. 知识点内容
- 负责人负责保存备忘录,并且管理备忘录的生命周期。它不关心备忘录的具体内容,只负责存储和提供备忘录给原发器。例如,在撤销操作的实现中,负责人会维护一个备忘录的栈结构,当需要撤销操作时,就从栈顶取出相应的备忘录交给原发器。
- 在版本控制系统中,负责人可以是版本管理工具,它负责存储不同版本的文件状态备忘录,并根据用户的请求提供相应的版本进行恢复。
2. 学习方法
- 构建小型项目来模拟负责人管理备忘录的过程,重点关注如何处理多个备忘录的存储顺序、内存管理等问题。
- 对比不同系统中负责人的实现差异,例如本地版本控制系统和分布式版本控制系统中的负责人功能的区别。

在实际应用案例方面,以版本控制和撤销操作为例。
1. 版本控制
- 在软件开发过程中,每次代码提交都可以看作是创建了一个备忘录。开发人员可以在不同的版本之间切换,这就相当于原发器(代码库)根据负责人(版本控制系统)提供的备忘录(不同版本的代码状态)进行状态恢复。
- 负责人要确保备忘录的完整性和可访问性,同时还要处理版本冲突等问题。
2. 撤销操作
- 当用户在图形编辑软件中进行了一系列操作后想要撤销时,原发器(图形编辑器)会将当前状态保存为备忘录交给负责人(撤销操作管理模块)。当用户点击撤销按钮时,负责人就提供最近的一个备忘录给原发器,原发器根据备忘录恢复到之前的状态。

总之,在备考系统架构设计师考试时,要深入理解备忘录模式的这三个角色的职责、相互关系以及在实际场景中的应用。通过理论学习和实际案例分析相结合的方式,能够更好地掌握这一重要的设计模式。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:强化阶段第 5 - 6 周:设计模式深化之备忘录模式精讲

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share