- 浏览: 18293 次
- 性别:
- 来自: 西安
最新评论
Memento Pattern:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
Memento.java
public class Memento { private String state; public Memento(String state) { super(); this.state = state; } public String getState() { return state; } public void setState(String state) { this.state = state; } }
Originator.java
public class Originator { private String state; public Memento createMemento() { return new Memento(state); } public void restore(Memento memento) { state = memento.getState(); } public String getState() { return state; } public void setState(String state) { this.state = state; } }
CareTaker.java
public class CareTaker { private Memento memento; public CareTaker(Memento memento) { super(); this.memento = memento; } public Memento getMemento() { return memento; } public void setMemento(Memento memento) { this.memento = memento; } }
Client.java
public class Client { public static void main(String[] args) { Originator originator = new Originator(); originator.setState("state1"); System.out.println(originator.getState()); System.out.println("创建备忘录:"); CareTaker careTaker = new CareTaker(originator.createMemento()); System.out.println("改变状态为state2"); originator.setState("state2"); System.out.println("恢复前:"); System.out.println(originator.getState()); originator.restore(careTaker.getMemento()); System.out.println("恢复后:"); System.out.println(originator.getState()); } }
程序运行结果如下:
state1 创建备忘录: 改变状态为state2 恢复前: state2 恢复后: state1
发表评论
文章已被作者锁定,不允许评论。
-
Interpreter
2011-11-24 21:19 837Interpreter Pattern:其意图是给定一个语言, ... -
Visitor
2011-11-24 17:37 658Visitor Pattern:表示一个作用于某对象结构中的各 ... -
Mediator
2011-11-24 16:22 662Mediator Pattern: 用一 ... -
Prototype
2011-11-24 11:32 605Prototype Pattern:就是通过复制现在已经存在的 ... -
Flyweight
2011-11-23 18:38 650享元模式以共享的方式高效地支持大量的细粒度对象. 1).Fl ... -
Builder
2011-11-22 16:38 763Builder Pattern:可以将一个产品的内部表象与产品 ... -
Bridge
2011-11-22 15:05 684桥梁模式的用意是"将抽象化(Abstraction) ... -
Chain Of Responsibility
2011-11-21 23:05 657Chain Of Responsibility Pattern ... -
Abstract Factory
2011-11-21 22:00 644下面以Mac和PC的CPU和RAM为例,代码如下: Cpu. ... -
Proxy
2011-11-18 18:47 660Proxy Pattern:对其他对象提供一种代理以控制对这个 ... -
State
2011-11-18 15:57 677State Pattern:当一个对象的内在状态改变时允许改变 ... -
Composite
2011-11-17 17:09 792Composite Pattern:意图是将对象组合成树形结构 ... -
Iterator
2011-11-16 16:56 889Iterator Pattern:其意图是提供一种方法顺序访问 ... -
Template Method
2011-11-16 11:43 659模板方法模式:在一个方法中定义一个算法的骨架,而将一些实 ... -
Facade
2011-11-15 23:00 596Facade Pattern:为子系统中的各类(或结构与方法) ... -
Adapter
2011-11-15 21:43 630Adapter Pattern:将一个类的接口,转换成客户所期 ... -
Command
2011-11-14 23:06 5721).下面以Boss和Clerk为例: Clerk.java ... -
Factory Method
2011-11-13 20:44 595Simple Factory: 以Fruit为例,以下是实现 ... -
Decorator
2011-11-12 23:09 570装饰者可以在所委托被装饰者的行为之前与/或之后,加上自己的 ... -
Observer
2011-11-12 21:30 600观 察 者 模 式 定义了对象之间的一对多依赖,这样一来 ...
相关推荐
在《Quell Memento》中,游戏场景、角色动画以及交互元素等都可能是在Canvas上进行绘制的。理解HTML5 Canvas的绘图API,如`fillRect()`、`strokeRect()`、`beginPath()`、`moveTo()`、`lineTo()`等,是分析游戏源码...
备忘录模式(Memento Pattern)是设计模式中的一种行为模式,主要目的是在不违反封装原则的情况下,保存一个对象的内部状态,以便在需要时能够恢复到先前的状态。这种模式通常用于实现撤销/重做功能或者在游戏中保存...
**Memento模式**,也被称为快照模式,是设计模式中的行为模式之一,它在软件工程中用于保存对象的状态,以便在需要时可以恢复到先前的状态。Memento模式的核心思想是实现对对象状态的无损保存和恢复,而无需暴露对象...
**C++ Memento模式** Memento模式是一种行为设计模式,属于设计模式中的“状态保存”类别,它在不破坏封装性的前提下,捕获一个对象的内部状态,并可以在需要时恢复对象到先前的状态。这种模式常用于实现撤销/重做...
这是运用Memento设计模式,设计的一个简单实例, 你可以通过工具栏选择绘制不同图形,使用备份创建备忘录,然后选择恢复进行绘制图形的恢复。 http://blog.csdn.net/ziyuanxiazai123/article/details/12421265
《C++设计模式:Memento模式深度解析》 在软件工程中,设计模式是一种被广泛认可的解决特定问题的模板,它为复杂性提供了一种结构化的处理方式。Memento模式,又称备忘录模式,是行为设计模式之一,主要用于在不...
备忘录模式(Memento Pattern)是软件设计模式中的一种行为模式,它的主要目的是在不破坏对象封装性的前提下,允许对象在特定时刻保存其内部状态,并能够在之后恢复到保存时的状态。这种模式广泛应用于撤销/重做功能...
备忘录设计模式(Memento Pattern)是软件工程中的一种行为设计模式,主要用于在不破坏封装性的前提下,捕捉对象的内部状态,并允许之后恢复到该状态。这种模式在许多场景下都有广泛应用,比如撤销/重做功能、游戏...
备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将对象恢复到先前的状态。这种模式在需要撤销/重做功能、...
### OpenERP Technical Memento v0.6.3 关键知识点概览 #### 一、OpenERP简介 **OpenERP**是一款现代化的企业管理软件,它基于AGPL协议发布,并且提供了包括客户关系管理(CRM)、人力资源(HR)、销售、会计、...
备忘录模式(Memento Pattern)是一种设计模式,它允许对象在不破坏封装性的前提下,捕获并存储其内部状态,以便在需要时恢复到先前的状态。这种模式常用于撤销/重做功能,或者在注册过程中保存用户信息,防止因意外...
"MDB:Memento数据库脚本的Javascript函数" 指的是一个使用JavaScript编写的脚本集合,这些脚本与Memento数据库配合使用。Memento数据库是一款轻量级、用户友好的数据库应用,它允许用户创建、管理和共享数据。这里...
备忘录(Memento)模式是一种行为设计模式,它在不破坏封装性的前提下,捕获一个对象的内部状态,并允许该对象在以后恢复到这个状态。这种模式常用于需要保存和恢复对象状态的情景,例如撤销/重做功能、游戏存档或...
备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。在C++中实现备忘录模式通常涉及以下几个角色: 1. 发起人(Originator):创建一个备忘录,用以...
适用于Chrome和Firefox浏览器的Memento扩展Chrome下载: : 右键单击页面和链接,以浏览网络的过去。 适用于Chrome和Firefox的Memento可让您在当前网络和过去的网络之间无缝导航。 它将您的浏览器变成Web时间旅行...
《Memento Mori-crx插件详解》 在数字化时代的今天,我们的生活被各种应用程序和工具包围,其中浏览器扩展程序作为个性化和效率提升的重要一环,扮演着不可或缺的角色。Memento Mori-crx插件就是这样一个专注于时间...
Memento 是一个支持原子、隔离事务的数据库,写入预写日志并在系统崩溃时同步以实现持久性,并合并到 b 树中以进行快速检索。 它从内存页面缓存中读取,并在页面达到用户指定的内存限制时从缓存中逐出页面。 ...