C++ 编程Memento模式技术应用法则
?????? 本文主要是对C++ 编程Memento模式案例做个较为深入的解析,C++编程语言中的应用方式比较灵活,我们可以通过各种模式来实现特定的功能。比如今天为大家介绍的C++ Memento模式,就是一个非常有用的应用模式,希望大家可以从中获得一些帮助。
C++ Memento模式代码示例:
#include<?iostream>?
#include<?string>?
using?namespace?std; ?
typedef?string?states; ?
class?Memento; ?
class?Orininator ?
{ ?
public: ?
Orininator(){m_st="";m_mt=0;}; ?
Orininator(const?states&?st){m_st=st;m_mt=0;}; ?
~Orininator(){}; ?
Memento*?CreateMemento(); ?
void?SetMemento(Memento*?men){}; ?
void?RestoretoMen(Memento*?mt); ?
states?GetState(){return?m_st;}; ?
void?SetState(const?states&?sdt){m_st=sdt;} ?
void?PrintState(){cout<?this->m_st<?<?".."<?<?endl;} ?
private: ?
states?m_st; ?
Memento*?m_mt; ?
};
class?Memento ?
{ ?
private: ?
friend?class?Orininator;//友元 ?
Memento(){}; ?
Memento(const?states&?st){m_st=st;}; ?
~Memento(){}; ?
void?SetState(const?states&?std){m_st=std;}; ?
states?GetState(){return?m_st;}; ?
private: ?
states?m_st; ?
};
Memento*?Orininator::CreateMemento() ?
{ ?
return?new?Memento(m_st);//合理的应用构造函数; ?
} ?
void?Orininator::RestoretoMen(Memento*?mt) ?
{ ?
this->m_st=mt->GetState(); ?
}
void?main() ?
{ ?
Orininator*?Ori=new?Orininator(); ?
Ori->SetState("old"); ?
Ori->PrintState(); ?
Memento*?m=Ori->CreateMemento(); ?
Ori->SetState("new"); ?
Ori->PrintState(); ?
Ori->RestoretoMen(m); ?
Ori->PrintState(); ?
}
以上就是对C++ Memento模式的相关介绍。呵呵,如果有不当之处,敬请指正啊-----