设计模式----备忘录模式

原创 2016年08月30日 20:40:42

在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样就可以将以后的对象状态恢复到先前保存的状态。
适用于功能比较复杂的,但需要记录或维护属性历史的类;或者需要保存的属性只是众多属性中的一小部分时Originator可以根据保存的Memo还原到前一状态。
这里写图片描述

//备忘录模式:备忘录对象是一个用来存储另一个对象内部状态的快照的对象。
//设计备忘录的三大步骤
//1.设计记录的结点,存储记录
//2.设计记录的存储,vector,list,map,set等
//3.操作记录的类,记录结点的状态,设置结点状态,显示结点
#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;
};

客户端:
int 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();
    return 0;
}

相关文章推荐

Java设计模式-备忘录

  • 2015年01月25日 01:25
  • 11KB
  • 下载

Qt和设计模式-画板的备忘录

备忘录模式概述 备忘录模式提供了一种状态恢复的实现机制,使得用户可以很方便的回到一个特定的历史状态,当前很多软件都提供了撤销(Undo)和恢复(反撤销)操作,其中就使用了备忘录模式。 备忘录模式定义...

设计模式-备忘录

  • 2016年11月15日 23:20
  • 53KB
  • 下载

设计模式(备忘录、职责链)

备忘录模式:所谓备忘录模式就是要保存对象的内部状态。以游戏为例,在结束游戏时我们需要保存游戏的进度。当然我们将需要保存的内部状态,然后游戏类和备忘录类引用这个状态类。        中介者模式:以租...

十二、备忘录设计模式

1. 备忘录设计模式介绍在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样,以后就可将该对象恢复到原先保存的状态。2. 备忘录设计模式使用场景 需要保存一个对象在某一个时刻...

java设计模式(四)——单例、观察者、代理、备忘录、工厂

一、Singleton单例模式 Singleton单例模式是最简单的设计模式,它的主要作用是保证在程序运行生命周期中,使用了单类模式的类只能有一个实例对象存在。 1、饱汉模式,声明时就创建实例...

Memento(备忘录)设计模式

一、概念        在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 二、模式结构图...

设计模式(18)——Memento(备忘录)

备忘录是什么? 备忘录模式是在不破坏封装性的前提下捕获一个对象的内部状态,并在对象之外保存这个状态。这样以后就可以将对象回复到原先保存的状态。 备忘录模式示例 下面的示例...

设计模式-备忘录

1.核心:保存某个对象内部状态的copy,可以将该对象恢复到原先的状态 2.结构: 发起人(Originator):要被备分的成员,提供创建备忘录的方法,就是将它自身的某些信息copy一份...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式----备忘录模式
举报原因:
原因补充:

(最多只允许输入30个字)