设计模式之18 - 备忘录模式Memento
来源:互联网 发布:打车软件不合法 编辑:程序博客网 时间:2024/06/07 01:40
有时候我们需要记录一个对象的状态,用于该对象在某些状况下的恢复,这种模式 我们称之为 备忘录模式。
就像你录一段 婚礼视频,写一篇日记 是一样的, 备忘录模式 类结构图定义如下:
发起人(Originator):需要备份的对象,将自身的属性信息拷贝到一个 备忘录对象,并能够通过备忘录中的属性信息 进行恢复;
备忘录(Memento):保存发起人状态,提供set,get接口进行状态访问;
管理角色(Caretaker):用于管理备忘录对象的实现类。
在什么情况下需要使用 备忘录模式呢?
1. 功能比较复杂,需要维护或记录属性的对象;
作者在做Undo、Redo时曾用到过 Memento 来记录复杂的类 和 图元。
2. 需要保存的内容只是对象的一部分属性。
备忘录模式 可以把复杂的发起人内部信息对其他的对象屏蔽起来,发起人不再需要管理和保存其内部状态的版本。
同样由于上面的这个原因,发起人并不清楚 备忘录的存储代价,这种情况下的应用就需要事先了解,否则可能较大程度上影响 内存和存储空间,这是必须要注意的。
一个典型的备忘录模式:
// Memento类定义class Memento{ Memento(Originator o) { m_strState = o.state; } void setState(const std::string& state) { m_strState = state; } void getState(std::string& state) { state = m_strState; } std::string m_strState;}备忘录模式 的本质就在于保存和恢复对象的内部状态。
2 0
- 设计模式之18 - 备忘录模式Memento
- 设计模式之Memento(备忘录)
- 设计模式读书笔记之备忘录模式(Memento)
- 设计模式之备忘录模式Memento
- 设计模式之备忘录模式(Memento Pattern)
- java设计模式之备忘录模式Memento
- 设计模式之备忘录模式(Memento)
- 设计模式之备忘录模式,memento
- 设计模式之备忘录模式(Memento)
- 设计模式入门之备忘录模式Memento
- 设计模式之备忘录模式(Memento)摘录
- 23设计模式之备忘录模式(Memento)
- 23设计模式之备忘录模式(Memento)
- 设计模式之:备忘录模式(Memento)
- 设计模式读书笔记之备忘录模式(Memento)
- 设计模式之备忘录模式--- Pattern Memento
- 【设计模式】行为模式之备忘录Memento
- 设计模式之备忘录模式(Memento)
- Sublime Text2安装SublimeCodeIntel
- 练习
- Java虚拟机学习(7):对象内存分配与回收
- GPGPU-Sim 源码阅读笔记 之 cache option默认策略
- android 学习笔记11-多媒体
- 设计模式之18 - 备忘录模式Memento
- Uva1572 Self-Assembly 【建立图论模型拓扑排序】【例题6-19】
- JFinal数据库配置
- xlog接入方案
- Stanford : cs106a 编程方法学课程 Karel程序 编译环境配置
- 57.贝赛尔曲线初步(二) - 高仿QQ未读消息气泡拖拽黏连效果
- 设计模式之19 - 观察者模式Observer
- 几何基础光学(3):理想光学系统
- 设计模式之20 - 状态模式State