hechi158 发表于 2013-2-4 22:11:56

C++ 编程Memento模式技术应用法则

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