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

原创 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设计模式之:备忘录模式

备忘录模式:又叫做快照模式,指在不破坏封装性的前提下,获取到一个对象的内部状态,并在对象之外记录或保存这个状态。在有需要的时候可将该对象恢复到原先保存的状态。我们相当于把对象原始状备份保留,所以叫备忘...
  • true100
  • true100
  • 2016年01月22日 12:26
  • 2425

【C#设计模式-备忘录模式】

一.备忘录模式的定义: 在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 二.备忘录模式的结构和角色: 1.Originator(...
  • heyangyi_19940703
  • heyangyi_19940703
  • 2016年05月11日 17:59
  • 5279

大话设计模式—备忘录模式

备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保...
  • lmb55
  • lmb55
  • 2016年03月30日 20:51
  • 1221

设计模式-备忘录

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

Memento备忘录设计模式实例-绘图程序

  • 2013年10月08日 21:37
  • 22KB
  • 下载

Java设计模式-备忘录

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

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

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

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

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

TypeScript设计模式之备忘录、命令

看看用TypeScript怎样实现常见的设计模式,顺便复习一下。 学模式最重要的不是记UML,而是知道什么模式可以解决什么样的问题,在做项目时碰到问题可以想到用哪个模式可以解决,UML忘了可以查,思...
  • aiwuzhi12
  • aiwuzhi12
  • 2017年03月14日 10:35
  • 159

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

设计模式(18)——备忘录 Memento
  • leonliu06
  • leonliu06
  • 2017年11月05日 14:25
  • 59
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式----备忘录模式
举报原因:
原因补充:

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