引言:

    2014年4月20号上午11:30,正式结束了自己的自学考试!考完之后瞬间感觉放松了开来!全身无力则是自己20号下午的唯一感受。放松了半天,今天回归正轨!又回到了和生活息息相关的设计模式上来!今天就用备忘录模式来记录一下自己这次的自考感受吧!

    考试有喜有忧,对于数据库来讲,因为考试了一遍,这次又一次回到考场上,产生出了不一样的快感吧!最起码态度有了转变,解题方式上也有了提高;昨天上午考的管理经济学也许是自己这次感觉最顺利的一科!也许是有计算题的原因吧!相比之下,信息资源管理就显得令自己充满了无奈!

    在考场上,也许每一个人都会遇到这种问题,这个问题当初自己看的非常认真,但是当考场上真的出现了自己所谓的重点的时候,又会不自觉的责备一下自己,为何当初自己不再认真点呢?这样自己就能够拿满分了!今天就用备忘录模式来帮助一下自己,记录一下自己的以前的记忆吧!即所谓的“懊悔药机制”

备忘录模式:

结构图:

Originator:负责创建一个Memento,用以记录当前时刻它的内部状态,并可使用备忘录回复内部状态。
Memento:负责存储Originator对象的内部状态,并可防止Originator以外的其它对象訪问Memento。
Caretaker:负责保存好Memento,不能对备忘录的内容进行操作或检查。

介绍:

备忘录模式,又叫快照模式(Snapshot Pattern)或Token模式,是行为模式的一种。

长处:

1)给用户提供了一种能够恢复状态的机制。能够是用户能够比較方便地回到某个历史的状态。
2)实现了信息的封装。使得用户不须要关心状态的保存细节。

缺点:

消耗资源。假设类的成员变量过多,势必会占用比較大的资源,并且每一次保存都会消耗一定的内存。

使用场景:

    Memento模式比較适用于功能比較复杂的,但须要维护或记录属性历史的类,或者须要保存的属性仅仅是众多属性中的一小部分时,Originator能够依据保存的Memento信息还原到前一状态。
总结点:
    1)须要保存一个对象在某一个时刻的状态或部分状态;2)假设用一个接口来让其他对象得到这些状态,将会暴漏对象的实现,通过负责人能够间接訪问其内部状态。

自考记忆举例:

备注:

考试的时候自己每次遇到一个题目,总会从大脑中搜索相关的知识,一下的过程则是简单的描写叙述了一下知识存储于大脑以及从大脑搜索的过程!

client主要代码:

 static void Main(string[] args){Memory memory = new Memory();memory.Economics = "这个知识点属于管理经济学的内容模块";memory.ShowEconomicsName();Brain B = new Brain();B.Memento = memory.Savekind();   //记忆存储memory.Economics = "这个知识点已经归纳到大脑中内容模块";memory.ShowEconomicsName();//从大脑中查找memory.Seek(B.Memento);memory.ShowEconomicsName();}

Originator类:

class Memory{private string economics;public string Economics{get { return economics; }set { economics= value; }}//经济学管理存储public MemoryMemento Savekind(){Console.WriteLine("内容模块已在大脑中存储");return (new MemoryMemento(economics));}//查找public void Seek(MemoryMemento MM){economics = MM.Economics;Console.WriteLine("已从大脑中搜索到经济管理学内容模块");}public void ShowEconomicsName(){Console.WriteLine(economics);}

Memento类:

class MemoryMemento{private string economics;public MemoryMemento (string economics)  //在记忆时对内容要总结{this.economics = economics;}public string Economics{get { return economics; }}}

Caretaker类:

 class  Brain{private MemoryMemento memento;public MemoryMemento Memento{get { return memento; }set { memento = value; }}}

最后执行结果:


    第二次自考就这样结束了!当中经历了非常好的GTD,同一时候也由于上次不理想的原因小小烦躁了一段时间,可是最后想想备忘录这个大功能,相信在GTD的非常好辅助下,自己也全然能够做到!为自己的第三次自考加油!
 

转载于:https://www.cnblogs.com/mengfanrong/p/3745174.html

自考感悟,话谈备忘录模式相关推荐

  1. java memento_浅谈Java设计模式——备忘录模式(Memento)

    一.概述 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态.它实现了对信息的封装,使得客户不需要关心状态保存的细节.保存就要消耗资源 ...

  2. 7、大话设计模式--状态模式 、适配器模式、备忘录模式、组合模式、迭代器模式

    第十六章:无尽加班何时休--状态模式 状态模式 :   优点: 缺点: 所使用的项目是:工作状态 功能: 界面: 设计思路: 收获: 附: 1.概述 在软件开发过程中,应用程序可能会根据不同的情况作出 ...

  3. 【故事】创业者破产后自述:别总谈商业模式、推广和体验

    我得抑郁症,其实都是被逼的. 今年2月份,面临破产,我几乎绝望了,不单纯是对事业的绝望,更是对人性的绝望,人性里的"恶"太可怕了. 我是真心怕了. 从而,我开始远离互联网圈子,不跟 ...

  4. 设计模式-备忘录模式(Memento)-Java

    设计模式-备忘录模式(Memento)-Java 目录 文章目录 1.前言 2.示例案例-可悔棋的中国象棋 3.备忘录模式概述 3.1.备忘录模式定义 3.2.备忘录模式结构 3.3.备忘录模式结构图 ...

  5. [设计模式-行为型]备忘录模式(Memento)

    一句话 让某个对象可以取到之前的某个状态值. 概括 解析 MEMENTO-同时跟几个MM聊天时,一定要记清楚刚才跟MM说了些什么话,不然MM发现了会不高兴的哦,幸亏我有个备忘录,刚才与哪个MM说了什么 ...

  6. 一天一种设计模式之二-----备忘录模式

    2019独角兽企业重金招聘Python工程师标准>>> 一.备忘录模式 备忘录模式属于三种设计模式中的行为型模式(另外两种是创建型模式和结构型模式). 定义:在不破坏封闭性的前提下, ...

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

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

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

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

  9. 设计模式(行为型模式)——备忘录模式(Memento)

    2019独角兽企业重金招聘Python工程师标准>>> 本章讲讲第三类和第四类. 备忘录模式(Memento) 主要目的是保存一个对象的某个状态,以便在适当的时候恢复对象,个人觉得叫 ...

最新文章

  1. Linux学习(三)--vi和vim编辑器
  2. Appian宣布将Google AI 集成到RPA中
  3. Oracle中TO_DATE格式
  4. 如何禁用UITableView选择?
  5. C#10,带来了Date和Time类型
  6. 视频隐身衣:物体移除、去水印、后期处理毫无痕迹
  7. 【C++】用sort函数产生的段错误问题
  8. mysql innodb 读加锁,Mysql InnoDB加锁分析
  9. Microsoft.Windows.Controls.Ribbon.RibbonWindow 碰到 AvalonDock出现的诡异现象
  10. Matlab绘制柱状图(含显著性差异*)
  11. PS2019 常用快捷键大全
  12. 计划的主体部分应有哪些内容_计划练习题
  13. 计算机输入法不能切换用户登录,Win7输入法无法切换怎么办?
  14. JVM垃圾收集器-Parallel Scavenge收集器
  15. layui + layer弹出层增删改的操作
  16. Python基础-day02
  17. Java线程生产者消费者问题详解
  18. Analog Devices Inc. A2B(汽车音频总线)
  19. 2021-1-22初学JAVA
  20. 基于JSP校园一卡通管理系统

热门文章

  1. React开发(210):react中try...catch..
  2. 前端学习(3207):js中的事件绑定
  3. [html] 编写一个布局,让文字环绕在图片的周围
  4. [html] 说说你对html中的置换元素和非置换元素的理解
  5. 前端学习(2889):如何短时间内实现v-for 模板编译21
  6. [vue] 你有看过vue的源码吗?如果有那就说说看
  7. [css] 你是如何规划响应式布局的?
  8. [css] 固定的外框尺寸,里面的图片尺寸不固定,如何让图像自适应外框呢?
  9. 前端学习(2783):封装myrequest并绑定到全局
  10. 工作131:根据请求返回报错