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

引言:

    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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420920.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小白教你用Java生成验证码

验证码生成效果一,生成验证码二,页面收到验证码三,验证验证码是否填写正确效果 点击验证码可切换 给出提示 一,生成验证码 package servlet;import java.io.IOException;import javax.servlet.ServletException; import jav…

modbus rtu 协议转DLT645-2007和DLT645-1997电表协议转换器定制,

现场会碰到现场数据为Modbus协议,但是后台系统为DLT645协议系统,本模块支持将工业ModbusRtu协议转换为电表国标协议DLT645协议,支持1997和2007俩种标准,只需要进行简单的配置,就可以实现Modbus 协议转DLT645协议&#…

残差网络(ResNet)

普通块 残差块 现在一个大概的理解是,增加x这条“短路”后,肯定优于(恒等映射),可以考虑两种情况:可以拟合出远远高于(恒等映射),或者根本拟合不出高于(恒等…

AI绘画训练一个扩散模型-上集

介绍 AI绘画,其中最常见方案基于扩散模型,Stable Diffusion 在此基础上,增加了 VAE 模块和 CLIP 模块,本文搞了一个测试Demo,分为上下两集,第一集是denoising_diffusion_pytorch ,第二集是diff…

WPF多线程UI更新——两种方法

WPF多线程UI更新——两种方法 前言 在WPF中,在使用多线程在后台进行计算限制的异步操作的时候,如果在后台线程中对UI进行了修改,则会出现一个错误:(调用线程无法访问此对象,因为另一个线程拥有该对象。&…

二叉树的递归遍历

二叉树遍历一,什么是二叉树二,递归实现2.1 结点类描述2.2 三种递归2.2 测试一,什么是二叉树 在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作"左子树"(left subtree)和&…

概率论的公理结构

样本点 一个随机事件出现的可能的结果叫做样本点。 类比平面几何,线、面、体也是由点组成的集合,研究的是点线面关系及性质,同样样本点也是组成事件(集合)的材料,是集合的基本元素,把这些样本…

python词云的简单使用

词云的生成所需库代码实现wordclod参数说明具体实现效果展示所需库 wordcloud, jieba, imageiowordcloud 词云库,用来统计文本文档里面出现的高频词汇,或者句子,以图片可视化的方式显示出来jieba库,分割中文的库,把较…

(一)Neo4j在Centos7虚拟机上的安装

1、什么是图数据库? 图数据库是基于数学里图论的思想和算法而实现的高效处理复杂关系网络的新型数据库系统。图形数据库善于高效处理大量的、复杂的、互连的、多变的数据。其计算效率远远高于传统的关系型数据库。图形数据库在社交网络、实时推荐、征信系统、人工智…

(二)Cypher语言常用方法举例

1、概述 “Cypher”是一个描述性的类Sql的图操作语言。相当于关系数据库的Sql,可见其重要性!其语法针对图的特点而设计,非常方便和灵活。没有Join,是一大特点!学好Cypher是学好Neo4j的关键,也是核心所在&a…

github 人像卡通化探索项目

把项目下载到本地 下载地址 https://github.com/minivision-ai/photo2cartoon安装依赖库 python 3.7 # 3.x版本都可 pytorch 1.4 tensorflow-gpu 1.14 # tesorflow 得是1.0版本,2.0版本语法部分改变,不然项目运行会出错 face-alignment dlibpytorch …

CVE-2013-3897漏洞成因与利用分析

CVE-2013-3897漏洞成因与利用分析 1. 简介 此漏洞是UAF(Use After Free)类漏洞,即引用了已经释放的内存。攻击者可以利用此类漏洞实现远程代码执行。UAF漏洞的根源源于对对象引用计数的处理不当,比如在编写程序时忘记AddRef或者多…

(三)Neo4j自带northwind案例--Cypher语言应用

0、概述 通过该案例,应用Cypher查询语言,感受Neo4j套路。官方的用此案例的用意: The Northwind Graph demonstrates how to migrate(迁移) from a relational database to Neo4j(把一个负责的多表关系数据…

RDIFramework.NET 中多表关联查询分页实例

RDIFramework.NET 中多表关联查询分页实例 RDIFramework.NET 中多表关联查询分页实例 RDIFramework.NET,基于.NET的快速信息化系统开发、整合框架,给用户和开发者最佳的.Net框架部署方案。该框架以SOA范式作为指导思想,作为异质系统整合与互操…

(六)Neo4j综合项目

0、概述 本文以热播电视剧《人民的名义》中的人物关系为数据基础,抛开案例本身的内容,本项目的意义在于指出使用Neo4j数据库的一般流程是什么?包括数据的导入、操作、查询、展示,从而体会出与传统数据库相比Neo4j在处理图数据的巨…

过滤器filter,监听器listener

目录1. filter过滤器1.1 原理1.2 配置1.3 过滤掉脏话demo2. listener监听器2.1 作用2.2 ServletContextListener demo1. filter过滤器 作用:过滤servlet,jsp,js,css,图片对象,以及一切在服务器,客户端想访…

(一)elasticsearch6.1.1安装详细过程

1、配置java环境 检查java环境 满足elasticsearch6.1.1java环境要求; 2、安装ElasticSearch6.1.1 ①为es新生成用户、用户组 su root groupadd esgroup useradd ela -g esgroup -p 5tgbhu8[rootlocalhost fibonacci]# su ela Attempting to create directory /h…

使用jdk DOM,SAX和第三方jar包DOM4J创建,解析xml文件

xml的创建,解析1. 什么是xml文件1.1 什么是xml文件1.2 解析xml的方式,优缺点2. 使用dom操作xml文件2.1 使用dom创建xml文件2.2 使用dom解析xml文件2.3 使用dom对xml文件增删改3. 使用SAX解析xml文件4. 使用DOM4J操作xml文件4.1 使用DOM4J创建xml文件4.2 …

(二)ElasticSearch6.1.1 Python API

0、准备开启数据库 ① 关闭Linux防火墙,这个很重要,否则API总是报错连不上。 # 查看防火墙状态 firewall-cmd --state# 关闭防护墙 systemctl stop firewalld.service# 开启防火墙 systemctl start firewalld.service# 重启防火墙 systemctl restart f…