当前位置:网站首页 > 技术博客 > 正文

备忘录功能介绍



廖雪峰
资深软件开发工程师,业余马拉松选手。

在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。

备忘录模式(Memento),主要用于捕获一个对象的内部状态,以便在将来的某个时候恢复此状态。

其实我们使用的几乎所有软件都用到了备忘录模式。最简单的备忘录模式就是保存到文件,打开文件。对于文本编辑器来说,保存就是把类的字符串存储到文件,打开就是恢复类的状态。对于图像编辑器来说,原理是一样的,只是保存和恢复的数据格式比较复杂而已。Java的序列化也可以看作是备忘录模式。

在使用文本编辑器的时候,我们还经常使用Undo、Redo这些功能。这些其实也可以用备忘录模式实现,即不定期地把类的字符串复制一份存起来,这样就可以Undo或Redo。

标准的备忘录模式有这么几种角色:

  • Memento:存储的内部状态;
  • Originator:创建一个备忘录并设置其状态;
  • Caretaker:负责保存备忘录。

实际上我们在使用备忘录模式的时候,不必设计得这么复杂,只需要对类似的类,增加和就可以了。

我们以一个文本编辑器为例,它内部使用允许用户增删字符:

为了支持这个能保存和恢复状态,我们增加和两个方法:

对这个简单的文本编辑器,用一个就可以表示其状态,对于复杂的对象模型,通常我们会使用JSON、XML等复杂格式。

给TextEditor添加备忘录模式。

下载练习

备忘录模式是为了保存对象的内部状态,并在将来恢复,大多数软件提供的保存、打开,以及编辑过程中的Undo、Redo都是备忘录模式的应用。

  • 上一篇: zd03 3(2)
  • 下一篇: 光线和三角形求交
  • 版权声明


    相关文章:

  • zd03 3(2)2024-11-21 20:30:01
  • c++文本文件输入输出2024-11-21 20:30:01
  • 安全测试软件有哪些2024-11-21 20:30:01
  • sqlsugar ioc2024-11-21 20:30:01
  • 串口调试助手教程2024-11-21 20:30:01
  • 光线和三角形求交2024-11-21 20:30:01
  • 爬虫数据抓取软件2024-11-21 20:30:01
  • 多线程无锁技术2024-11-21 20:30:01
  • jmeter插件管理器报错2024-11-21 20:30:01
  • mysql软件版本2024-11-21 20:30:01