memento.cpp

来自「详细介绍了20种设计模式的具体实现框架,很有参考价值」· C++ 代码 · 共 72 行

CPP
72
字号
/********************************************************************
	created:	2006/08/09
	filename: 	Memento.cpp
	author:		李创
                http://www.cppblog.com/converse/

	purpose:	Memento模式的演示代码
*********************************************************************/

#include "Memento.h"
#include <iostream>

Originator::Originator()
{

}

Originator::Originator(const State& rState)
	: m_State(rState)
{

}

Originator::~Originator()
{

}

State Originator::GetState()
{
	return m_State;
}

void Originator::SetState(const State& rState)
{
	m_State = rState;
}

Memento* Originator::CreateMemento()
{
	return new Memento(m_State);
}

void Originator::RestoreState(Memento* pMemento)
{
	if (NULL != pMemento)
	{
		m_State = pMemento->GetState();
	}	
}

void Originator::PrintState()
{
	std::cout << "State = " << m_State << std::endl;
}

Memento::Memento(const State& rState)
	: m_State(rState)
{

}

State Memento::GetState()
{
	return m_State;
}

void Memento::SetState(const State& rState)
{
	m_State = rState;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?