备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 Memento模式比较适用于功能比较复杂的,但需要维护或记录属性历史的类,或者需要保存的属性只是众多属性中的一小部分时,Originator可以根据保存的Meme...
分类:
其他好文 时间:
2014-12-30 15:10:21
阅读次数:
192
意图:在不破坏对象封装性的前提下,在对象的外部得到并保存对象内部的状态,这样对象以后还能恢复到原来的状态。像是备份对象的内部信息。
参与者:
memento(备忘录),存储原发器的内部状态。
Originator(原发器),创建备忘录,纪录自己当前的状态,以及使用备忘录恢复对象的状态。
CareTaker(负责人),负责保存好备忘录,并且保护备忘录不能被改变。...
分类:
其他好文 时间:
2014-12-29 09:04:58
阅读次数:
135
学行为型模式的时候,觉得备忘录模式与命令模式差不多,今天就将两者进行对比,加深一下印象。
一、介绍
1、备忘录模式
(1)Memento:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态。
(2)类图
(3)个人理解
我们日常生活中的备忘录,就是保存自己的记事,下...
分类:
其他好文 时间:
2014-12-24 18:06:49
阅读次数:
158
一、概述
在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样就可以在以后将对象恢复至原先保存的状态。它是一种对象行为型模式。
二、适用场景
1、类似于撤销功能的实现,保存一个对象在某一时间的部分状态或全部状态,当以后需要它时就可以恢复至先前的状态。
2、 对对象历史状态的封装、避免将对象的历史状态的实现细节暴露给外界。...
分类:
编程语言 时间:
2014-12-24 00:04:08
阅读次数:
213
备忘录模式,可以将当前状态保存,并随时恢复。Originator存在状态state,当需要保存此状态时,通过CreateMemento创建一个备忘录对象Memento保存此状态;而需要恢复相应状态时,使用RestoreMemento(memento)将相应的状态恢复回来。
分类:
其他好文 时间:
2014-12-23 15:16:56
阅读次数:
108
一、UML图
二、概念
备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将对象恢复到原先保存的状态。
三、说明
角色:
(1)Originator(发起人):负责创建一个Memento,用以记录当前时刻它的内部状态,并可以使用备忘录恢复内部状态。Originator可以根据需要决定Memento存储...
分类:
编程语言 时间:
2014-12-21 23:40:24
阅读次数:
359
#include #include using namespace std;class Memento{public: Memento(string sState) { m_sState = sState; } string GetState() { return m_sStat...
分类:
其他好文 时间:
2014-12-19 13:03:47
阅读次数:
154
undo-redo需要备忘录模式和命令模式做支撑,之前有学习过了command模式和memento模式的一些基本知识。这里要结合两个模式实现一个undo-redo操作的模块,巩固所学的知识。
系统框图:
命令分发控制器主要有四个任务:
1.系统初始化,加载系统配置参数并把这些数据缓存起来,这些应用程序级别的配置参数可以使用序列化机制,把数据缓存而不用每次去读...
分类:
其他好文 时间:
2014-12-13 17:57:23
阅读次数:
218
在应用程序设计过程中,一些具体操作需要能够支持撤销(undo),例如最近在写的一个文件管理系统。文件的一些基本操作如:rename、copy、cut等,需要支持undo、redo操作来提供更好的用户体验。总所周知,undo、redo操作需要两个模式支撑:备忘录模式(memento)保存对象操作数据状态、命令模式(command)封装用户请求。结合起来可以提供良好的撤销、重做操作。命令模式可以参考上...
分类:
其他好文 时间:
2014-12-12 13:26:52
阅读次数:
167
备忘录模式定义 备忘录模式(Memento),在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将对象回复到原先保存的状态。 备忘录模式结构图 备忘录模式结构图如下所示: 图 01 备忘录模式结构图 备忘录模式套用代码 #include "iostream"
u...
分类:
其他好文 时间:
2014-12-04 11:59:49
阅读次数:
124