#pragma once
#include "stdafx.h"
#include<string>
#include<iostream>
using 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;
}

设计模式复习-备忘录模式相关推荐

  1. java备忘录模式应用场景_图解Java设计模式之备忘录模式

    图解Java设计模式之备忘录模式 游戏角色状态恢复问题 游戏角色有攻击力和防御力,在大战Boss前保存自身的状态(攻击力和防御力),当大战Boss后攻击力和防御力下降,从备忘录对象恢复到大战前的状态. ...

  2. java之备忘录模式,java设计模式之备忘录模式

    java设计模式之备忘录模式 代码无错便是优? 简介: 在不破坏封装性的前提下 , 捕获一个对象的内部状态,并在该对象之外保存这个状态 , 这样以后就可以将该对象恢复到原先保存的状态 . 备忘录模式就 ...

  3. Alamps学习设计模式之备忘录模式(笑话:劫个色OR抢个鸡蛋版)

    //设计模式之备忘录模式(月光宝盒版),只要喊菠萝菠萝蜜,就能返回事件的原点.//至尊宝//爱你一万年 class LoverWords {// 模拟Memento     private Strin ...

  4. 设计模式之备忘录模式 转载

    https://juejin.im/post/59c8eb6951882564c5164c5f 设计模式之备忘录模式 备忘录模式 介绍 是一种行为模式 用于保存对象当前状态,并在之后恢复到此状态(后悔 ...

  5. java备忘录模式 类图,Android编程设计模式之备忘录模式详解

    本文实例讲述了Android编程设计模式之备忘录模式.分享给大家供大家参考,具体如下: 一.介绍 备忘录模式是一种行为模式,该模式用于保存对象当前状态,并且在之后可以再次恢复到此状态,这有点像我们平时 ...

  6. 设计模式之备忘录模式(Memento)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  7. 设计模式:备忘录模式(Memento)

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  8. 『设计模式』备忘录模式(memento)下象棋,我就想悔棋怎么办

    23种设计模式+额外常用设计模式汇总 (持续更新) Memento模式的关键就是要在不破坏封装性的前提下,捕获一个对象的内部状态并在该对象之外保存这个状态.这样以后就可以利用该保存的状态实施恢复操作. ...

  9. [转]深入浅出Java设计模式之备忘录模式

    本文转自:http://dev.yesky.com/450/2070450.shtml 一.引子 俗话说:世上难买后悔药.所以凡事讲究个"三思而后行",但总常见有人做"痛 ...

最新文章

  1. linux 如何查看tomcat实时的日志
  2. KVO方式监听数组的变化动态刷新tableView
  3. python berkeley 操作——尤其提示 需版本匹配
  4. 【知识星球】为什么图像分类任务要从256*256中裁剪出224*224
  5. opengl编程指南第8版源码编译详细说明
  6. awk的基本使用方法
  7. 使用Zabbix中遇到的问题:snmp监控端口流量偶尔会断图
  8. CNCF landscape 云原生 敏捷开发
  9. Php clearstatcache() 函数详解
  10. 计算机硕士工资一览表 08年各大IT公司薪水行
  11. Android 角标设置
  12. java ocr数字识别_使用Tesseract Ocr识别数字
  13. 如何修复手机里的m4a格式录音文件
  14. sun 公司的java 认证
  15. 【Python】sorted函数的使用
  16. cpri和10g-kr的关系?
  17. 永嘉县公安退休干部李建初诗词创作助力正能量
  18. manifold 流形
  19. 2020年微信引流,教你如何吸引客源!
  20. SQLSTATE[HY000] [1049] Unknown database

热门文章

  1. 4.AngularJS四大特征之二: 双向数据绑定
  2. 《微信小程序:开发入门及案例详解》—— 3.4 小结
  3. HDU5709 : Claris Loves Painting
  4. 给一个金额字符串插入逗号分隔 保留两位有效数字
  5. iOS实现本地通知(local notification)的方法
  6. 黑马vue---10-11、Vue实现跑马灯效果
  7. 黑马lavarel教程---11、响应处理
  8. 心得体悟帖---12、志向还是太短浅,目光也是
  9. Android 阻隔返回键
  10. 茶香账簿小程序开发进度(1)