备忘录模式
2016-04-02 14:41
155 查看
定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态
//设计备忘录三大步骤
//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];
}
};
//设计备忘录三大步骤
//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];
}
};
相关文章推荐
- tomcat端口被占用的解决方法
- 送别银工、黎工
- mysqldump报错
- 遍历dict
- IOS常见错误分析解决
- 免安裝、免設定的 Hadoop 開發環境 - cloudera 的 QuickStart VM
- static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
- 通过ntdll.dll的函数枚举进程
- oj1721
- 最长公共子序列问题 POJ 1458 Common Subsequence
- PCB 快捷键
- 传说中的WCF(9):流与文件传输
- 4月计划
- Qt标签编辑框等重叠问题
- mesosphere/marathon/docker安装配置
- 正则表达式
- 编译错误stray ‘\343’ in program解决办法
- 关于安装wamp遇到的问题
- 项目经理/小组长的职责
- ubuntu14.04挂载磁盘权限问题的解决(repo代码权限问题)