- 浏览: 170292 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (193)
- Axis2 (10)
- Andriod (2)
- Java (22)
- Eclipse (2)
- 程序人生 (3)
- Windows (1)
- Sql Server 2005/2008 (7)
- 健身 (2)
- Log4j (1)
- Ant (1)
- Fatjar (2)
- 国际化 (1)
- Linux (3)
- JDBC (1)
- Oracle (2)
- 各种报错 (4)
- SWT (5)
- Tomcat (2)
- 车辆管理 (1)
- SVN (2)
- Spring (5)
- 域名服务器 (0)
- HaoWaYa (1)
- FTP (1)
- 集散中心 (1)
- 专业知识 (1)
- 面试准备 (19)
- 设计模式 (22)
- Junit (1)
- 软件下载 (3)
- 深入理解Java虚拟机 (3)
- 数据结构 (4)
- 雅思 托福 (0)
- UML (1)
- Maven (1)
- CV (1)
- ServiceMix (1)
- 电子书 (5)
- Struts1/2 (4)
- DOM W3C DHTML (3)
- Jawr (1)
- LoadRunner (1)
- Java反编译 (0)
- 英语学习 (0)
- 技术书籍 (1)
- Cygwin (0)
- ibatis (1)
- 数据库 (1)
- jQuery (0)
- s (2)
- 源代码项目 (5)
- JSRs (0)
- JCP (0)
- XML (2)
- Dojo (3)
- Effective Java (1)
- 一站到底 (3)
- JavaScript (6)
- DB2 (1)
- 刷机 (1)
- 字符 (1)
- Dynamic Web Project (1)
- 股市日记 (1)
- 代码片段 (0)
- CSS (1)
- PDF (0)
- 英语口语 (1)
- 乒乓球 (1)
- 体检 (0)
- 送花 (0)
- 面试准备-再战江湖 (5)
- ddq (0)
- sss (0)
- ssssss (0)
- 2020面试 (0)
最新评论
-
samsongbest:
Copperfield 写道你的目标很远大,佩服~惭愧,都忘了 ...
人生目标 -
Copperfield:
你的目标很远大,佩服~
人生目标
需要跟进多重检查点。
1.用意
又叫快照模式或Token模式。
备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。在不破坏封装的条件下,将一个对象的状态捕捉住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。备忘录模式常常与命令模式和迭代子模式一同使用。
2.类图
白箱实现
黑箱实现
3.代码
白箱实现
/* * 备忘录角色 */ public class Memento { private String state; public Memento(String state) { this.state = state; } public String getState(){ return state; } public void setState(String state) { this.state = state; } } /* * 负责人角色 */ public class Caretaker { private Memento memento; public Memento retrieveMemento() { return memento; } public void saveMemento(Memento memento) { this.memento = memento; } } /* * 发起人角色 */ public class Originator { private String state; public Memento createMemento() { return new Memento(state); } /* * 将发起人恢复到备忘录对象所记载的状态 */ public void restoreMemento(Memento memento) { this.state = memento.getState(); S.s("Current state = " + this.state); } public String getState() { return this.state; } public void setState(String state) { this.state = state; S.s("Current state = " + this.state); } } /* * 测试类 */ public class Test { private static Originator o = new Originator(); private static Caretaker c = new Caretaker(); public static void main(String[] args) { o.setState("On"); c.saveMemento(o.createMemento()); o.setState("Off"); o.restoreMemento(c.retrieveMemento()); } }
黑箱实现
/* * 标识接口 */ public interface MementoIF { } /* * 负责人角色 */ public class Caretaker { private MementoIF memento; public MementoIF retrieveMemento() { return this.memento; } public void saveMemento(MementoIF memento) { this.memento = memento; } } /* * 发起人角色 */ public class Originator { private String state; public Originator() { } public MementoIF createMemento() { return new Memento(this.state); } /* * 将发起人恢复到备忘录对象所记载的状态 */ public void restoreMemento(MementoIF memento) { Memento aMemento = (Memento)memento; this.setState(aMemento.getState()); S.s("Current state = " + this.state); } public String getState() { return this.state; } public void setState(String state) { this.state = state; S.s("Current state = " + this.state); } /* * 备忘录角色 */ protected class Memento implements MementoIF{ private String savedState; public Memento(String someState) { this.savedState = someState; } public String getState(){ return savedState; } public void setState(String someState) { this.savedState = someState; } } } /* * 测试类 */ public class Test { private static Originator o = new Originator(); private static Caretaker c = new Caretaker(); public static void main(String[] args) { o.setState("On"); c.saveMemento(o.createMemento()); o.setState("Off"); o.restoreMemento(c.retrieveMemento()); } }
z
发表评论
-
22 行为模式 - 调停者(Mediator)模式
2012-08-23 10:21 8261.用意 调停者模式包装了一系列对象相互 ... -
21 行为模式 - 解释器(Interpreter)模式
2012-08-23 10:18 7591.用意 给定一个语言之后,解释器模式可以定 ... -
20 行为模式 - 访问者(Visitor)模式
2012-08-22 10:28 8591.用意 封装一些施加于某种数据结构元素之上的操 ... -
19 行为模式 - 状态(State)模式
2012-08-22 10:25 7501.用意 状态模式允许一个对象在其内部状态改变的时候 ... -
17 行为模式 - 命令(Command)模式
2012-08-20 10:29 5631.用意 命令模式把一个请求或者操作封装到一个对象中。命令模 ... -
16 行为模式 - 责任链(Chain of Responsibility)模式
2012-08-20 10:24 7541.用意 在责任链模式里,很多对象由每一个对象对其下家的引用 ... -
15 行为模式 - 迭代子(Iterator)模式
2012-08-17 10:32 7381.用意 迭代子模式又叫游标模式,可以顺序地访问一个聚集中的 ... -
14 行为模式 - 观察者(Observer)模式
2012-08-09 10:27 8051.用意 观察者模式定义了一种一对多的依赖关系,让多个观察者 ... -
13 行为模式 - 模板方法(Template Method)模式
2012-08-09 10:21 6851.用意 准备一个抽象类,将部分逻辑以具体方法以及具体构造子 ... -
12 行为模式 - 策略(Strategy)模式
2012-08-07 10:00 7191.用意 针对一组算法,将每一个算法封装到具有共同接口的 ... -
11 结构模式 - 桥梁(Bridge)模式
2012-08-01 10:01 7311.用意 2.类图 3.代码 z 1.用意 将 ... -
10 结构模式 - 门面(Facade)模式
2012-07-31 13:52 6761.含义 外部与一个子系统的通信必须通过一个统一的门面对象进 ... -
09 结构模式 - 享元(Flyweight)模式
2012-07-31 13:47 8081.含义 享元模式以共享的方式高效地支持大量的细粒度对象。 ... -
8 代理(Proxy)模式
2012-07-31 09:48 8941.含义 代理模式给某一个对象提供一个代理对象,并由代理对象 ... -
7 装饰(Decorator)模式
2012-07-27 14:03 6991.含义 装饰模式又名包装(Wrapper)模式,以对客户端 ... -
6 合成(Composite)模式
2012-07-27 14:02 7661.含义 合成模式把部分和整体的关系用树结构表示出来。合成模 ... -
5 适配器(Adapter)模式
2012-07-27 13:52 7351. 含义 把一个类的接口变换成客户端所期待的另一种接口,从 ... -
4 原始模型(Prototype)模式
2012-07-27 10:49 7901. 含义 通过给出一个原型对象来指明所要创建的对象的类型, ... -
3 建造(Builder)模式
2012-07-27 09:44 7091.含义:建造模式可以将一个产品的内部表象与产品的生成过程分割 ... -
1 抽象工厂(Abstract Factory)模式
2012-07-26 17:54 7331.类图 2.类 Creator ...
相关推荐
c++设计模式-行为型模式-备忘录模式;qt工程;c++简单源码;备忘录(Memento)模式的定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先...
备忘录模式是一种行为设计模式,它允许对象在不破坏封装性的前提下捕获并存储其内部状态,以便稍后恢复到该状态。这种模式常用于在游戏中保存进度、撤销/重做操作、以及在复杂业务逻辑中保存中间计算结果等场景。 ...
备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不破坏封装性的情况下捕获和恢复对象的内部状态。该模式通常用于需要撤销操作或恢复先前状态的情况下。备忘录模式包括三个主要组件:原始对象、备忘录...
备忘录模式(Memento Pattern)是软件设计模式中的一种行为模式,它的主要目的是在不破坏对象封装性的前提下,允许对象在特定时刻保存其内部状态,并能够在之后恢复到保存时的状态。这种模式广泛应用于撤销/重做功能...
备忘录(Memento)模式是一种行为设计模式,它在不破坏封装性的前提下,捕获一个对象的内部状态,并允许该对象在以后恢复到这个状态。这种模式常用于需要保存和恢复对象状态的情景,例如撤销/重做功能、游戏存档或...
备忘录模式(Memento Pattern)是设计模式中的一种行为模式,主要目的是在不违反封装原则的情况下,保存一个对象的内部状态,以便在需要时能够恢复到先前的状态。这种模式通常用于实现撤销/重做功能或者在游戏中保存...
备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将对象恢复到先前的状态。这种模式在需要撤销/重做功能、...
备忘录模式是一种行为设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态。这种模式通常用于游戏存档、撤销/重做操作、以及...
备忘录模式(Memento Pattern)是软件设计模式中的一种,属于行为模式。它提供了一种方式来恢复对象到之前的状态,即“撤销”操作。备忘录模式的核心思想是保存对象的内部状态,以便在需要时能恢复到这个状态,而...
备忘录模式是一种行为设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将对象恢复到原先保存的状态。这种模式常用于需要记录用户操作历史或者游戏进度...
在"备忘录模式-极客学院-java-课件代码"这个压缩包中,我们可以期待找到相关的Java代码示例,这些示例可能包括发起人、备忘录和管理者类的实现,以及如何在实际场景中运用备忘录模式的示例。通过学习这些代码,...
备忘录模式是一种行为设计模式,它允许在不破坏封装性的前提下,捕获和恢复对象的状态。这种模式常用于需要记录对象当前状态以便稍后恢复的情况,例如撤销/重做功能、游戏存档或者复杂表单的数据保存。 在备忘录...
备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。在C++中实现备忘录模式通常涉及以下几个角色: 1. 发起人(Originator):创建一个备忘录,用以...
备忘录模式(Memento)是一种行为型设计模式,它允许在不暴露对象的实现细节的情况下,捕获并保存对象的内部状态,从而可以在未来某个时刻恢复到之前的状态。备忘录模式特别适用于实现撤销操作,或是需要进行状态...
备忘录模式是一种行为设计模式,它允许在不破坏封装性的前提下,捕获和恢复一个对象的内部状态。在C++中实现备忘录模式,可以有效地帮助开发者在程序运行过程中保存对象的状态,以便在需要时恢复到之前的状态,这...
备忘录模式是一种设计模式,属于行为模式类型,它的主要作用是保存对象的状态,以便在需要的时候能够恢复到之前的状态。这种模式的核心在于提供一种方式,可以在不破坏封装的前提下,捕获并存储一个对象的内部状态,...
备忘录模式是一种设计模式,它在不破坏封装性的前提下,保存对象的内部状态,以便在需要的时候恢复。在C#中,备忘录模式常用于实现撤销/重做功能,或者在需要记录和恢复对象状态的情况下。下面将详细解释备忘录模式...