设计模式复习-备忘录模式
#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;
}
设计模式复习-备忘录模式相关推荐
- java备忘录模式应用场景_图解Java设计模式之备忘录模式
图解Java设计模式之备忘录模式 游戏角色状态恢复问题 游戏角色有攻击力和防御力,在大战Boss前保存自身的状态(攻击力和防御力),当大战Boss后攻击力和防御力下降,从备忘录对象恢复到大战前的状态. ...
- java之备忘录模式,java设计模式之备忘录模式
java设计模式之备忘录模式 代码无错便是优? 简介: 在不破坏封装性的前提下 , 捕获一个对象的内部状态,并在该对象之外保存这个状态 , 这样以后就可以将该对象恢复到原先保存的状态 . 备忘录模式就 ...
- Alamps学习设计模式之备忘录模式(笑话:劫个色OR抢个鸡蛋版)
//设计模式之备忘录模式(月光宝盒版),只要喊菠萝菠萝蜜,就能返回事件的原点.//至尊宝//爱你一万年 class LoverWords {// 模拟Memento private Strin ...
- 设计模式之备忘录模式 转载
https://juejin.im/post/59c8eb6951882564c5164c5f 设计模式之备忘录模式 备忘录模式 介绍 是一种行为模式 用于保存对象当前状态,并在之后恢复到此状态(后悔 ...
- java备忘录模式 类图,Android编程设计模式之备忘录模式详解
本文实例讲述了Android编程设计模式之备忘录模式.分享给大家供大家参考,具体如下: 一.介绍 备忘录模式是一种行为模式,该模式用于保存对象当前状态,并且在之后可以再次恢复到此状态,这有点像我们平时 ...
- 设计模式之备忘录模式(Memento)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...
- 设计模式:备忘录模式(Memento)
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...
- 『设计模式』备忘录模式(memento)下象棋,我就想悔棋怎么办
23种设计模式+额外常用设计模式汇总 (持续更新) Memento模式的关键就是要在不破坏封装性的前提下,捕获一个对象的内部状态并在该对象之外保存这个状态.这样以后就可以利用该保存的状态实施恢复操作. ...
- [转]深入浅出Java设计模式之备忘录模式
本文转自:http://dev.yesky.com/450/2070450.shtml 一.引子 俗话说:世上难买后悔药.所以凡事讲究个"三思而后行",但总常见有人做"痛 ...
最新文章
- linux 如何查看tomcat实时的日志
- KVO方式监听数组的变化动态刷新tableView
- python berkeley 操作——尤其提示 需版本匹配
- 【知识星球】为什么图像分类任务要从256*256中裁剪出224*224
- opengl编程指南第8版源码编译详细说明
- awk的基本使用方法
- 使用Zabbix中遇到的问题:snmp监控端口流量偶尔会断图
- CNCF landscape 云原生 敏捷开发
- Php clearstatcache() 函数详解
- 计算机硕士工资一览表 08年各大IT公司薪水行
- Android 角标设置
- java ocr数字识别_使用Tesseract Ocr识别数字
- 如何修复手机里的m4a格式录音文件
- sun 公司的java 认证
- 【Python】sorted函数的使用
- cpri和10g-kr的关系?
- 永嘉县公安退休干部李建初诗词创作助力正能量
- manifold 流形
- 2020年微信引流,教你如何吸引客源!
- SQLSTATE[HY000] [1049] Unknown database