行为型模式之备忘录模式

原创 2018年04月15日 00:00:13
#include<iostream>
#include<string>
using namespace std;

class MemTo
{
public:
	MemTo(string name, int age)
	{
		m_name = name;
		m_age = age;
	}

	string getName()
	{
		return m_name;
	}

	int getAge()
	{
		return m_age;
	}

	void setName(string name)
	{
		m_name = name;
	}

	void setAge(int age)
	{
		m_age = age;
	}


private:
	string m_name;
	int m_age;
};

class Person
{
public:
	Person(string name, int age)
	{
		m_name = name;
		m_age = age;
	}

	string getName()
	{
		return m_name;
	}

	int getAge()
	{
		return m_age;
	}

	void setName(string name)
	{
		m_name = name;
	}

	void setAge(int age)
	{
		m_age = age;
	}

	MemTo *CreatMemTo()
	{
		return new MemTo(m_name, m_age);
	}

	void setMemTo(MemTo*memto)
	{
		m_name = memto->getName();
		m_age = memto->getAge();
	}

	void printT()
	{
		cout << "m_name:" << m_name << " m_age:" << m_age << endl;
	}

private:
	string m_name;
	int m_age;
	MemTo *memto;
};


//备忘录管理器
class careTaker
{
public:
	careTaker(MemTo*memto)
	{
		m_memto = memto;
	}

	MemTo*getMemTo()
	{
		return m_memto;
	}

	void setMemTo(MemTo*memto)
	{
		m_memto = memto;
	}

private:
	MemTo *m_memto;
};

void main1()
{
	MemTo *m = NULL;
	Person *p1 = new Person("小于", 25);
	p1->printT();
	m = p1->CreatMemTo();
	p1->setName("老于");
	p1->setAge(50);
	p1->printT();
	p1->setMemTo(m);
	p1->printT();

}

void main2()
{
	careTaker *m = NULL;
	Person *p1 = new Person("小于", 25);
	p1->printT();
	m = new careTaker(p1->CreatMemTo());
	p1->setName("老于");
	p1->setAge(50);
	p1->printT();
	p1->setMemTo(m->getMemTo());
	p1->printT();

}

void main()
{
	main2();
}

main1、main2运行结果:


Creating a real singleton class in Delphi 5

Creating a real singleton class in Delphi 5 Abstract:The article describes how to create a class tha...
  • Musicwind
  • Musicwind
  • 2001-11-02 19:32:00
  • 1044

C#面向对象设计模式纵横谈(21):(行为型模式) Memento 备忘录模式

  • 2008年09月16日 14:45
  • 8.68MB
  • 下载

(行为型模式) Memento 备忘录模式

  • 2009年12月05日 20:01
  • 10.11MB
  • 下载

行为型模式--备忘录模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述备忘录(Memento)模式的:   备忘录模式又叫做快照模式(Snapshot Pattern)或Token模式,是对象的行为模式。   备忘录...
  • scyatcs
  • scyatcs
  • 2014-10-24 15:27:24
  • 360

行为型模式——备忘录模式

概述 备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 介绍 意图 在不破坏封装性的前提下,捕获一个对象的内部状...
  • qq_36982160
  • qq_36982160
  • 2018-03-26 20:44:32
  • 13

行为型模式-备忘录模式

备忘录模式 在不破坏原封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样,以后就可以将该对象恢复到原先保存的状态。 备忘录模式角色 发起人(Originator)角...
  • hsgao_water
  • hsgao_water
  • 2015-08-04 16:56:18
  • 118

设计模式学习之备忘录模式

备忘录模式(Memento Pattern),是行为型模式设计模式之一,该模式用于保存对象当前状态,并且在之后可以再次恢复到此状态。备忘录模式实现的方式需要保证被保存的对象状态不能被对象从外部访问,目...
  • u012124438
  • u012124438
  • 2017-04-22 19:20:27
  • 574

C++设计模式——备忘录模式

前言 又到年底了,也静不下心来写代码了,大家都很浮躁;翻出经典的《仙剑奇侠传》玩一会;又要打大BOSS,先存一下档吧。这是我的习惯,在打大BOSS之前,都要先存一下档,要是打赢了,就再存一个档,...
  • caoshangpa
  • caoshangpa
  • 2016-10-28 14:35:19
  • 404

“备忘录模式”就这么简单

备忘录模式的官方定义: 在不破坏封装性的前提下,获取一个对象的内部状态,并在该对象之外保存这些状态。这样以后就可以通过该对象恢复到原先保存的状态。...
  • u010425776
  • u010425776
  • 2015-08-26 20:22:50
  • 1554

c++的设计模式之备忘录模式

备忘录模式就是能够存储当前状态,类似于玩游戏的时候可以不断的读档,同时在玩了新的游戏的时候,又可以更新到档案里。 #include #include using namespace std; /...
  • u013676711
  • u013676711
  • 2015-06-18 20:05:18
  • 1040
收藏助手
不良信息举报
您举报文章:行为型模式之备忘录模式
举报原因:
原因补充:

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