设计模式读书笔记:Memento(备忘录)

原创 2015年07月10日 21:11:10

意图:

在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。

结构图:来自 《23种设计模式 - 郗晓勇》


实现:https://github.com/panshiqu/patterns/tree/master/Memento

Memento

namespace NS_MEMENTO {

class Memento {
public:
	virtual ~Memento() {}

private:
	friend class Originator;
	Memento() : _state(false) {}
	bool getState(void)	{ return _state; }
	void setState(bool state)	{ _state = state; }

private:
	bool _state;
};

} /* namespace NS_MEMENTO */
Originator

#include "Memento.h"

namespace NS_MEMENTO {

class Originator {
public:
	Originator() : _state(false) {}
	virtual ~Originator() {}
	Memento *createMemento(void)
	{
		Memento *m = new Memento();
		m->setState(_state);
		return m;
	}
	void setMemento(Memento *m)
	{
		setState(m->getState());
	}

	bool getState(void)	{ return _state; }
	void setState(bool state)	{ _state = state; }

private:
	bool _state;
};

} /* namespace NS_MEMENTO */
main

#include <iostream>
#include "Memento/Memento.h"
#include "Memento/Originator.h"
using namespace NS_MEMENTO;
using namespace std;
int main(void)
{
	Originator o;
	Memento *m = o.createMemento();
	o.setState(true);
	o.setMemento(m);
	delete m;
	std::cout << o.getState() << std::endl;
}
附加:

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

设计模式读书笔记之备忘录模式(Memento)

备忘录模式:在不破坏封装性的前提下,捕获对象的内部状态并保存,这样以后就可以恢复该对象恢复到保存的状态。 备忘录模式比较简单, 不要因为名字比较陌生而不敢学它. 它没有复杂的结构, 上图...

《Android源码设计模式解析与实战》读书笔记(十三)——备忘录模式

经常看到某些app里面有撤销

大话设计模式读书笔记(十五) 备忘录模式

备忘录模式: 备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将这个对象回复到原先保存的状态。 模式备忘录类图: 涉及角色: ...
  • xsyfl
  • xsyfl
  • 2017年04月19日 20:47
  • 70

设计模式读书笔记-----备忘录模式

个人比较喜欢玩单机游戏,什么仙剑、古剑、鬼泣、使命召唤、三国无双等等一系列的游戏我都玩过(现在期待凡人修仙传),对于这些游戏除了剧情好、场面大、爽快之外,还可以随时存档,等到下次想玩了又可以从刚开始的...

设计模式学习笔记---备忘录模式memento pattern(Java版)

一、场景 录入大批人员资料,当正在录入当前人资料时,发现上一个人录错了 此时需要恢复上一个人的资料,再进行修改。 Word文档编辑时,忽然电脑死机或断电,再打开时可以看到word 提示你恢复到...

设计模式笔记22:备忘录模式(Memento Pattern)

一、备忘录模式的内容 备忘录模式(Memento Pattern):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。它是一种对象行...

设计模式学习笔记——备忘录(Memento)模式

设计模式学习笔记——备忘录(Memento)模式@(设计模式)[设计模式, 备忘录模式, memento]设计模式学习笔记备忘录Memento模式 基本介绍 备忘录案例 类图 实现代码 Memento...

设计模式 笔记 备忘录模式 Memento

//---------------------------15/04/27---------------------------- //Memento 备忘录模式----对象行为型模...
  • boydfd
  • boydfd
  • 2015年04月27日 16:37
  • 740

[设计模式笔记]三. 行为型模式--20. Memento模式(备忘录)对象行为型模式(一)

行为型模式--Memento模式(备忘录)对象行为型模式 一. 意图         在不破坏封装性的前提下, 捕获一个对象的内部状态, 并在该对象之外保存这个状态. 这样以后就可...
  • cay22
  • cay22
  • 2013年10月18日 10:14
  • 1008
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式读书笔记:Memento(备忘录)
举报原因:
原因补充:

(最多只允许输入30个字)