备忘录模式(状态变化)
来源:互联网 发布:华为杭州研究所知乎 编辑:程序博客网 时间:2024/05/22 02:18
#include <iostream>#include <string>#include <vector>using namespace std;//备忘录模式:备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。//备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捉住,//并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。//设计需要回放的软件,记录一下事物的状态。数据库备份,文档的编译,撤销,恢复//设计备忘录三大步骤//1.设计记录的节点,存储记录,记录鼠标,键盘的状态//2.设计记录的存储,vector,list,map,set,链表,图,数组,树//3.操作记录的类,记录节点状态,设置节点状态,显示状态,0.1秒记录一下//备忘录的节点,class Memo{public:string state;Memo(string state) //记录当前的状态,{this->state = state;}};class Originator//类的包含备忘录的节点{public:string state;void setMemo(Memo *memo){state = memo->state;}Memo *createMemo(){return new Memo(state);}void show(){cout << state << endl;}};//备忘录的集合class Caretaker{public:vector<Memo *> memo;void save(Memo *memo){(this->memo).push_back(memo);}Memo *getState(int i){return memo[i];}};int main(){Originator *og = new Originator();Caretaker *ct = new Caretaker();og->state = "on";og->show();ct->save(og->createMemo());og->state = "off";og->show();ct->save(og->createMemo());og->state = "middle";og->show();ct->save(og->createMemo());og->setMemo(ct->getState(1));og->show();og->setMemo(ct->getState(2));og->show();cin.get();return 0;}
0 0
- 备忘录模式(状态变化)
- 状态模式(状态变化)
- 状态模式、备忘录模式、命令模式,解释器模式
- Java设计模式(十) 备忘录模式 状态模式
- [设计模式](十二):备忘录模式(Memento)|状态模式(State)
- 设计模式(状态变化)——状态模式
- 观察者模式,Fragment监听Activity状态变化
- 使用状态模式实现加班状态变化C++
- 备忘录模式---备份还原某个时间点的状态
- 【状态模式】——状态的变化引起行为的变化
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- 备忘录模式
- sprintf用法详解
- 【51nod1462】树据结构
- Python数据结构与算法分析学习记录(1)——基于Problem Solving with Algorithms and Data Structures using Python的学习
- 在Keil C51函数中加入ASM代码
- MySQL 中间件汇总比较 .
- 备忘录模式(状态变化)
- HDU1072-Nightmare
- MarkDown笔记(一)
- Python数据挖掘相关机器学习库
- ajax(三)之省市二级菜单联动(从sql获取数据),无刷新翻页
- 1035. 插入与归并(25)
- 不要总埋怨自己记忆不好了,其实跟你的智商关系不大
- Java 后端实战——基于 Dubbo 的分布式系统架构
- SHOW INDEX 你用过吗???