设计模式复习-备忘录模式
#pragma once#include "stdafx.h"#include#includeusing namespace std;/* 设计模式-备忘录模式(Memento) 在不破坏对象封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。*/class Cmemento {//备忘录public: string mstrState="";public: Cmemento(const string &strState) { mstrState = strState; }};class COriginator {//发起人public: string mstrState="";public: Cmemento * CreateMemento() { return new Cmemento(mstrState); } void SetMemento(Cmemento * pMemento) { mstrState = pMemento->mstrState; } void Show() { cout << "State=" << mstrState << endl; }};class CCaretaker {public: Cmemento *mpMemento=NULL;};int main() { COriginator *P0 = new COriginator(); P0->mstrState = "On"; P0->Show(); CCaretaker *pC = new CCaretaker(); pC->mpMemento = P0->CreateMemento(); P0->mstrState = "Off"; P0->Show(); P0->SetMemento(pC->mpMemento); P0->Show(); getchar(); return 0;}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~