自考感悟,话谈备忘录模式

引言:


 
 
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的非常好辅助下,自己也全然能够做到!为自己的第三次自考加油!

自考感悟,话谈备忘录模式,布布扣,bubuko.com

时间: 2024-10-18 17:50:40

自考感悟,话谈备忘录模式的相关文章

备忘录模式

备忘录模式,望文生义就知道它是用来做备忘的,或者可以直接说是“备份”.当需要保存当前状态,以便在不久要恢复此状态时,就可以使用“备忘录模式”.将当前”状态“备份,是不是又new一个类,然后将每个字段方法copy过去就可以了呢?或者说使用我们之前clone方法做深复制浅复制呢?其实不然,在<大话设计模式>中,作者提到了原因,这样会暴露更多的细节给客户端,不符合我们面向对象的思想.什么是暴露更多的细节给客户端?我们来看下面一段代码. 1 package day_27_memento; 2 3 /*

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

一句话 让某个对象可以取到之前的某个状态值. 概括 解析 MEMENTO-同时跟几个MM聊天时,一定要记清楚刚才跟MM说了些什么话,不然MM发现了会不高兴的哦,幸亏我有个备忘录,刚才与哪个MM说了什么话我都拷贝一份放到备忘录里面保存,这样可以随时察看以前的记录啦. 备忘录模式:备忘录对象是一个用来存储另外一个对象内部状态的快照的对象.备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捉住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态. 实例 这个实例就以状态值

1.备忘录模式

1备忘录模式的核心内容是: A:存储记录的结构(用类来存储) B:产生记录的类 C:使用一种数据结构存储操作的记录 2备忘录模式的作用是回放所做的操作 3备忘录模式具体描述 备忘录模式:备忘录对象是一个用来存储另外一个对象内部状态的快照的对象. 备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捉住, 并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态. 同时跟几个MM聊天时,一定要记清楚刚才跟MM说了些什么话 不然MM发现了会不高兴的哦,幸亏我有个备忘录, 刚

设计模式_Memento_备忘录模式

形象例子: 同时跟几个MM聊天时,一定要记清楚刚才跟MM说了些什么话,不然MM发现了会不高兴的哦,幸亏我有个备忘录,刚才与哪个MM说了什么话我都拷贝一份放到备忘录里面保存,这样可以随时察看以前的记录啦.备忘录模式: 备忘录对象是一个用来存储另外一个对象内部状态的快照的对象.备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捉住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态. 作用: 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这

备忘录模式之备份是一种态度

有些事,错误了就是永远:有些人,一转身就是一辈子,不要轻易忽略任何爱,哪怕只是前天母亲节一通平凡的电话:时光走着她的路,路过青春的脚步,每个人或许都有遗憾的时候,总是要等到睡觉前,才知道功课只做了一点点 总是要等到考试后,才知道该念的书都没有念,为了让自己的人生少些许遗憾,需要我们做好时间管理,提前做好准备,认真思量之后再做打算. 但是在神奇的编程世界中,有一种魔法,可以让你避免很多遗憾,强大的word中具有"Ctrl+Z"的功能,PS等一些软件中,也具有此类功能,基本上所有的带编辑功

Java设计模式应用——备忘录模式

备忘录模式主要用于存档.游戏中我们打boss前总会存档,如果打boss失败,则读取存档,重新挑战boss. 可以看出来,备忘录模式一般包括如下数据结构 1. 存档文件:用于恢复备份场景的必要数据: 2. 存档管理器:用于管理存档,包括存档的读写与展示: 3. 被存档的对象. 下面以射击游戏的存档来举例: 1. 射击选手 package com.coshaho.learn.memorandum; // 射击手 public class Shooter { // 血量 private int blo

Java设计模式(十) 备忘录模式 状态模式

(十九)备忘录模式 备忘录模式目的是保存一个对象的某个状态,在适当的时候恢复这个对象. class Memento{ private String value; public Memento(String value){ this.value = value; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } } class Storage

4 行为型模式之- 备忘录模式

备忘录模式介绍: 备忘录模式是一种行为模式,该模式用于保存对象当前的状态,并且在之后可以再次恢复到此状态,这有点像我们平时说的"后悔"药.备忘录模式实现的方式需要保证被保存的对象状态不能被对象从外界访问,目的是为了保护好被保存的这些对象状态的完整性以及内部实现不向外暴露 备忘录模式的定义: 在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样,以后就可以将对象恢复到原先的状态 对于备忘录模式来说,比较贴切的场景应该是游戏中的存档功能,该功能就是将游戏进度存储到

设计模式(12)---备忘录模式

备忘录模式   Memento (行为型模式) 1.概述 备忘录模式:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态. 例如:一些软件提供的撤销功能,游戏的存档读档功能. 2.结构图 3.代码 1 /* 2 * 原发器类 Originator 3 */ 4 public class Role { 5 6 private int level ; 7 private int life ; 8 9 public Role() { 10