备忘录(Memento)模式】的更多相关文章

一. 备忘录模式 定义:在不破坏封装性的前提下,捕获一个对象的内部状态.并在该对象之外保存这个状态. 这样以后就可将该对象恢复到原先保存的状态. 结构图: 使用范围: Memento 模式比較适用于功能比較复杂的.但须要维护或记录属性历史的类,或者须要保存的属性仅仅是众多属性中的一小部分时.Originator 能够依据保存的 Memento 信息还原到前一状态. 代码: [cpp] view plaincopy //备忘录类 //负责存储 Originator 对象的内部状态 class Me…
一. 备忘录模式 定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态. 结构图: 使用范围: Memento 模式比较适用于功能比较复杂的,但需要维护或记录属性历史的类,或者需要保存的属性只是众多属性中的一小部分时,Originator 可以根据保存的 Memento 信息还原到前一状态. 代码: //备忘录类 //负责存储 Originator 对象的内部状态 class Memento { //注意:备忘录类中的方法是私…
备忘录模式又叫做快照模式或者Token模式. 备忘录对象是一个用来存储另一个对象内部状态的快照的对象.备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态.备忘录模式常常与命令模式和迭代子模式一起使用. 常见的系统往往不止存储一个状态,而是需要存储多个状态.这些状态常常是一个对象历史发展的不同阶段的快照,存储这些快照的备忘录对象叫做此对象的历史:某一个快照所处的位置叫做检查点. 1.角色 1.备忘录角色 备忘录…
在大部分游戏中,都有一个"存档点"的概念.比如,在挑战boss前,游戏会在某个地方存档,假设玩家挑战boss失败,则会从这个存档点開始又一次游戏.因此,我们能够将这个"存档点"当成是一个备忘录,我们将此时玩家全部的状态保存下来,以便之后的读取. 备忘录模式正是如此,它在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就能够将该对象恢复到原先的保存状态了. 一个简单的样例,如果玩家在暗黑破坏神中准备挑战Boss巴尔,玩家携带了10瓶药…
简介 定义: 在不破坏封装的前提下,捕获一个对象的[内部状态],并在该对象之外保存这个状态,这样以后就可以将该对象恢复到原先保存的状态. 角色: 发起人Originator:要被备份的成员,它提供一创建备忘录的方法,其实就是将它自身的某些信息拷贝一份到一个备忘录对象中.并提供另外一个方法将备忘录中的信息覆盖自身的信息. 备忘录Memento:备忘录对象中包含存储发起人状态的成员变量,它提供set,get或构造方法保存发起人状态及获取发起人状态. 管理角色(Caretaker):用于管理备忘录对象…
Memento定义:memento是一个保存另外一个对象内部状态拷贝的对象,这样以后就可以将该对象恢复到原先保存的状态. Memento模式相对也比较好理解,我们看下列代码: public class Originator { private int number; private File file = null; public Originator(){} // 创建一个Memento public Memento getMemento(){ return new Memento(this)…
备忘录模式 简介 在不破坏封装的前提下,捕获一个对象的[内部状态],并在该对象之外保存这个状态,这样以后就可以将该对象恢复到原先保存的状态. 角色: 发起人Originator:要被备份的成员,它提供一创建备忘录的方法,其实就是将它自身的某些信息拷贝一份放到一个备忘录对象中.并提供另外一个方法将备忘录中的信息覆盖自身的信息. 备忘录Memento:备忘录对象中包含存储发起人状态的成员变量,它提供set,get或构造方法保存发起人状态及获取发起人状态. 管理角色Caretaker:用于管理备忘录对…
Memento模式? 使用面向对象编程的方式实现撤销功能时,需要事先保存实例的相关状态信息.然后,在撤销时,还需要根据所保存的信息将实例恢复至原来的状态.这个时候你需要使用Memento设计模式.(以及实例实现对状态的保存) 关键字: 1.·Undo(撤销) 2.·Redo(重做) 3.·History(历史记录) 4.·Snapshot(快照) 破坏封装性: 将依赖于实例内部结构的代码分散地编写在程序中的各个地方,导致程序变得难以维护. 宽窄接口 wide interface--宽接口(APl…
备忘录模式顾名思义就是一种能有备忘作用的设计模式,其目的是在对象外部保存其在某一时刻的状态信息,并且在任何需要的时候,都可以通过备忘录中保存的状态数据恢复对象在当时情形下的状态. 备忘录模式旨在对象的外部保存其状态.因此,对于备忘录对象将会有一个维护者 MementoManager 对象,用于维护对象所对应的所有备忘录对象列表,并在适当的时候需要负责清除掉这些备忘录对象.模式的类结构图参考如下: 模式的编码结构代码参考如下: namespace memento { typedef int TDa…
参考资料 • 维基百科:https://en.wikipedia.org/wiki/Memento_pattern • 百度百科:http://baike.baidu.com/link?url=ZQZv4Uv7uXtgITrmTfvdS4Kl-lANTfqfqZUCGAQgqFF1pTlOBIo3Ka3or_FKGRoFP5ljPvjawk2nu2Bpd-Asm6dUxHZCN4yxsC2cA6zHtDG http://baike.baidu.com/link?url=id-CLN_Iq7xrH…