设计模式---备忘录模式(C++实现)

    xiaoxiao2021-03-25  83

    /********************************************************** 备忘录模式: 就是用一个类来保存一个类的中间状态;;;;; 如果想大规模的保存和管理状态那么就要是用一个管理类------- -------就好比命令模式的时候,命令太多的话,我们在把他给管理起来------------ 发起类中要有:设置状态的成员函数,创建包含当前状态信息的对象 通过管理类中的,发起类的指针传递,设置当前类中的状态。 *********************************************************/ #include <iostream> #include <string> using namespace std; class Memo; class Originator//初始状态类,我们想保存其中一个状态 { public: string state; Memo* CreateMemo(); void SetMemo(Memo* memo); void Show() { cout << "状态:" << state << endl;} }; class Memo//备忘录类,保存状态所使用到的结构 { public: string state; Memo(string strState) {state = strState;} }; Memo* Originator::CreateMemo(){ return new Memo(state);}//通过返回一个包含中间状态的对象 void Originator::SetMemo(Memo* memo){ state = memo->state;} class Caretaker//管理者类 { public: Memo* memo;//管理者类中包含了,保存状态的结点对象的指针 }; //这样就可以通过这个指针,操作结点的状态 void main() { Originator* on = new Originator(); on->state = "on"; on->Show(); Caretaker* c = new Caretaker();//使用此指针指向这个,包含中间状态的对象 c->memo = on->CreateMemo(); on->state = "off"; on->Show(); on->SetMemo(c->memo); on->Show(); system("pause");

    }

    参考:传智播客--尹成

    转载请注明原文地址: https://ju.6miu.com/read-40614.html

    最新回复(0)