memento 备忘录模式
2013-12-21 11:52
393 查看
#include <iostream> #include <string> using namespace std; class memento; class originator { public: typedef string state; originator():_me(NULL){ _me = create_memento(); } originator(const state &st):_st(st),_me(NULL){ _me = create_memento(); } ~originator(){ if (_me != NULL) delete _me; } void restore_from_memento(); state get_state() { return _st; } void set_state(const state &st); void print_state() { cout << _st << endl; } private: memento *create_memento(); state _st; memento *_me; }; class memento { private: friend class originator; typedef string state; memento(){} memento(const state &st):_st(st){} ~memento(){} void set_state(const state &st) { _st = st; } state get_state() { return _st; } state _st; }; memento *originator::create_memento() { return new memento(_st); } void originator::restore_from_memento() { this->_st = _me->get_state(); } void originator::set_state(const state &st) { _me->set_state(_st); _st = st; } int main() { originator *o = new originator; o->set_state("old"); o->print_state(); o->set_state("new"); o->print_state(); o->restore_from_memento(); o->print_state(); delete o; return 0; }
相关文章推荐
- Java设计模式之从[暗黑破坏神存档点]分析备忘录(Memento)模式
- 设计模式_Memento_备忘录模式
- 行为型模式:Memento 备忘录模式
- 备忘录模式--Memento
- 十八、备忘录模式Memento(行为型)
- [工作中的设计模式]备忘录模式memento
- Java 实现备忘录(Memento)模式
- 构造型模式之Memento(备忘录)模式
- Memento模式(备忘录设计模式)
- 设计模式 - 19 Memento 备忘录模式
- 《模式——工程化实现及扩展》(设计模式C# 版)《备忘录模式 Memento》——“自我检验" 参考答案
- HeadFirst 设计模式学习笔记22-- 备忘录(Memento)模式拾零
- java设计模式--迭代器模式 Iterator,备忘录模式 Memento,中介者模式 Mediator
- 存档读档的Memento——备忘录模式
- 3.6 Memento(备忘录) -- 对象行为型模式
- iOS 设计模式系列:Memento – 备忘录模式
- 设计模式-备忘录模式-memento-python??
- JAVA设计模式-备忘录模式-Memento-游戏备份存档
- Java设计模式之从[暗黑破坏神存档点]分析备忘录(Memento)模式
- java设计模式之备忘录模式Memento