- 浏览: 109347 次
- 性别:
- 来自: 成都
最近访客 更多访客>>
文章分类
最新评论
-
dev_liu:
lipengyu2006 写道现在怎么样儿了啊 房子多少钱买 ...
最近比较心烦 -
lipengyu2006:
现在怎么样儿了啊 房子多少钱买的。
最近比较心烦 -
cynan168:
...
hibernate数据查询的几种方式 -
My_Choice:
joram中文文档 -
My_Choice:
非常感谢,太有用了,中文文档不好找啊,而且是这么详细的
joram中文文档
Memento 定义:
memento 是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原
先保存的状态.
Memento 模式相对也比较好理解,我们看下列代码:
public class Originator {
private int number;
private File file = null;
public Originator(){}
// 创建一个Memento
public Memento getMemento(){
return new Memento(this);
}
// 恢复到原始值
public void setMemento(Memento m){
number = m.number;
file = m.file;
}
}
我们再看看Memento 类:
private class Memento implements java.io.Serializable{
private int number;
private File file = null;
public Memento( Originator o){
number = o.number;
file = o.file;
}
}
可见 Memento 中保存了Originator 中的number 和file 的值. 通过调用Originator 中
number 和file 值改变的话,通过调用setMemento()方法可以恢复.
Memento 模式的缺点是耗费大,如果内部状态很多,再保存一份,无意要浪费大量内存.
Memento 模式在Jsp+Javabean 中的应用
在Jsp 应用中,我们通常有很多表单要求用户输入,比如用户注册,需要输入姓名和Email 等,
如果一些表项用户没有填写或者填写错误,我们希望在用户按"提交Submit"后,通过Jsp 程
序检查,发现确实有未填写项目,则在该项目下红字显示警告或错误,同时,还要显示用户刚
才已经输入的表项.
如下图中 First Name 是用户已经输入,Last Name 没有输入,我们则提示红字警告.:
这种技术的实现,就是利用了Javabean 的scope="request"或scope="session"特性,也就是
Memento 模式.
具体示例和代码见 JavaWorld 的英文原文 , Javabean 表单输入特性参见我的另外一篇文
章.
发表评论
-
追MM与Java的23种设计模式[转]
2007-01-20 03:09 1151... -
设计模式之Factory
2007-01-20 02:58 1132定义:提供创建对象的接口. 为何使用? 工厂模式是我们最常用的 ... -
设计模式之Visitor
2007-01-20 02:54 1086Visitor 定义 作用于某个对象群中各个对象的操作. 它 ... -
设计模式之Interpreter(解释器)
2007-01-20 02:53 1138Interpreter 定义: 定义语言的文法 ,并且建立一 ... -
设计模式之Mediator(中介者)
2007-01-20 02:53 1159Mediator 定义: 用一个中介对象来封装一系列关于对象 ... -
设计模式之Strategy(策略)
2007-01-20 02:51 1069Strategy 是属于设计模式中 对象行为型模式,主要是定 ... -
设计模式之State
2007-01-20 02:51 1047设计模式之State State 的 ... -
设计模式之Command
2007-01-20 02:49 959Command 模式是最让我疑惑的一个模式,我在阅读了很多代 ... -
设计模式之Chain of Responsibility(职责链)
2007-01-20 02:47 1083Chain of Responsibility 定义 Cha ... -
设计模式之Observer
2007-01-20 02:46 958Java 深入到一定程度,就 ... -
设计模式之Template
2007-01-20 02:41 820Template 定义: 定义一个操作中算法的骨架,将一些步 ... -
设计模式之Flyweight(享元)
2007-01-20 02:40 960板桥里人 http://www.jdon.com 2002/ ... -
设计模式之Bridge
2007-01-20 02:39 924Bridge 定义 : 将抽象和行为划分开来,各自独立,但能 ... -
设计模式之Composite(组合)
2007-01-20 02:38 862Composite 定义: 将对象以树形结构组织起来,以达成 ... -
设计模式之Adapter(适配器)
2007-01-20 02:36 812定义: 将两个不兼容的 ... -
设计模式之Proxy(代理)
2007-01-20 02:35 1084理解并使用设计模式, ... -
设计模式之Facade(外观)
2007-01-20 02:34 814Facade 的定义: 为子系统中的一组接口提供一个一致的界 ... -
设计模式之Builder
2007-01-20 02:33 939Builder 模式定义: 将一个复杂对象的构建与它的表示分 ... -
设计模式之Singleton(单态)
2006-12-28 21:28 1023定义: Singleton 模式主要作用是保证在Java 应 ... -
设计模式之Prototype(原型)
2006-12-28 21:22 1167定义: 用原型实例指定创建对象的种类,并且通过拷贝这些原型 ...
相关推荐
C#面向对象设计模式纵横谈(21):(行为型模式) Memento 备忘录模式
C#面向对象设计模式 (行为型模式) Memento 备忘录模式 视频讲座下载
备忘录模式(Memento) 用意:用来存储另一对象内部状态的快照。
设计模式之Memento(备忘机制) 设计模式之Observer 设计模式之Chain of Responsibility(职责链) 设计模式之Command 设计模式之State 设计模式之Strategy(策略) 设计模式之Mediator(中介者) 设计模式之Interpreter...
设计模式之Memento(备忘机制) 设计模式之Observer 设计模式之Chain of Responsibility(职责链) 设计模式之Command 设计模式之State 设计模式之Strategy(策略) 设计模式之Mediator(中介者) 设计模式之Interpreter...
这是运用Memento设计模式,设计的一个简单实例, 你可以通过工具栏选择绘制不同图形,使用备份创建备忘录,然后选择恢复进行绘制图形的恢复。 http://blog.csdn.net/ziyuanxiazai123/article/details/12421265
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到保存的状态。
详细介绍GoF设计模式以及应用... 创建模式:设计模式之Factory,设计模式之Prototype(原型),设计模式之Builder,设计模式之Singleton(单态)....行为模式:设计模式之Template,设计模式之Memento(备忘机制).................
NULL 博文链接:https://edwin492.iteye.com/blog/1124741
C++设计模式课件19_Memento_备忘录.pdfC++设计模式课件19_Memento_备忘录.pdf
主要介绍了设计模式中的Memento备忘录模式的在iOS App开发中的运用,Memento着重于捕获和具体化当前对象的内部状态,需要的朋友可以参考下
备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 备忘录模式java demo
备忘录(Memento)模式又叫作快照(Snapshot)模式或Token模式,是一种对象的行为模式。在备忘录模式里,一个备忘录是一个对象,它存储另一个对象(备忘录的原发器)在某个瞬间的内部状态。备忘的目的就是为了以后在需要...
主要介绍了Java设计模式之备忘录模式(Memento模式)介绍,memento是一个保存另外一个对象内部状态拷贝的对象,这样以后就可以将该对象恢复到原先保存的状态,需要的朋友可以参考下
主要为大家详细介绍了C++设计模式之备忘录模式Memento的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
C#面向对象设计模式纵横谈(21):(行为型模式) Memento 备忘录模式 C#面向对象设计模式纵横谈(22):(行为型模式) State 状态模式 C#面向对象设计模式纵横谈(23):(行为型模式) Strategy 策略模式 C#面向对象设计...
主要介绍了php设计模式中的备忘录模式,使用php实现备忘录模式,感兴趣的小伙伴们可以参考一下
本文实例讲述了Python设计模式之备忘录模式原理与用法。分享给大家供大家参考,具体如下: 备忘录模式(Memento Pattern):不破坏封装性的前提下捕获一个对象的内部状态,并在该对象之外保存这个状态,这样已经后就可将...