一)类图
二)Java代码
Shape代表一个图形,简单起见,在例子中,图形只有简单的(x,y)坐标信息。方法moveto的每次调用将改变shape对象的状态。在备忘录模式中,Shape相当于Originstor,需要记录某个时刻的状态,方法createMemento负责将Shape某个时刻的状态保存成一个备忘录对象,方法removeMemento从一个备忘录对象中恢复Shape的状态。对于Shape来说,它是备忘录对象的使用者,它看到备忘录对象的宽接口Memento,可以直接操控备忘录对象的内部属性,用于恢复Shape对象,代码如下:
- packagetestIBM;
- publicclassShape{
- privateintx;
- privateinty;
- publicShape(intx,inty){
- this.x=x;
- this.y=y;
- }
- publicMementocreateMemento(){
- returnnewMemento(x,y);
- }
- publicvoidrestoreMemento(Mementomemento){
- x=memento.getX();
- y=memento.getY();
- }
- publicStringgetPosition(){
- return"("+x+","+y+")";
- }
- publicvoidmoveTo(intx,inty){
- this.x=x;
- this.y=y;
- }
- }
- packagetestIBM;
- publicinterfaceMementoIF{
- }
- packagetestIBM;
- publicclassMementoimplementsMementoIF{
- privateintx;
- privateinty;
- publicMemento(intx,inty){
- this.x=x;
- this.y=y;
- }
- publicintgetX(){
- returnx;
- }
- publicintgetY(){
- returny;
- }
- }
- packagetestIBM;
- publicclassCareTaker{
- privateMementoIFmemento;
- publicMementoIFgetMemento(){
- returnmemento;
- }
- publicvoidsaveMemento(MementoIFmemento){
- this.memento=memento;
- }
- }
Client演示了如何使用备忘录进行状态保存和恢复。代码如下:
- packagetestIBM;
- publicclassTestIt{
- publicstaticvoidmain(String[]args){
- Shapeshape=newShape(0,0);
- CareTakercareTaker=newCareTaker();
- shape.moveTo(22,24);
- careTaker.saveMemento(shape.createMemento());
- System.out.println("保存shape状态对象。当前位置是"+shape.getPosition());
- shape.moveTo(33,44);
- System.out.println("移到新位置"+shape.getPosition());
- shape.restoreMemento((Memento)careTaker.getMemento());
- System.out.println("恢复"+shape.getPosition());
- }
- }
分享到:
相关推荐
JAVA-设计模式-行为型模式-备忘录模式
c++设计模式-行为型模式-备忘录模式;qt工程;c++简单源码;备忘录(Memento)模式的定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先...
备忘录模式是一种行为设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态。这种模式通常用于游戏存档、撤销/重做操作、以及...
备忘录模式是一种行为设计模式,它允许对象在不破坏封装性的前提下捕获并存储其内部状态,以便稍后恢复到该状态。这种模式常用于在游戏中保存进度、撤销/重做操作、以及在复杂业务逻辑中保存中间计算结果等场景。 ...
在"备忘录模式-极客学院-java-课件代码"这个压缩包中,我们可以期待找到相关的Java代码示例,这些示例可能包括发起人、备忘录和管理者类的实现,以及如何在实际场景中运用备忘录模式的示例。通过学习这些代码,...
备忘录模式是一种行为设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将对象恢复到原先保存的状态。这种模式常用于需要记录用户操作历史或者游戏进度...
- **备忘录模式-类图**:可能展示了备忘录模式中各个类的结构和它们之间的关系,如继承、关联等,帮助深入理解每个角色的职责。 - **备忘录模式-概念图.jpg/pdf**:可能为不同格式的同一种图,提供多种查看方式,...
备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不破坏封装性的情况下捕获和恢复对象的内部状态。该模式通常用于需要撤销操作或恢复先前状态的情况下。备忘录模式包括三个主要组件:原始对象、备忘录...
备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将对象恢复到先前的状态。这种模式在需要撤销/重做功能、...
备忘录模式(Memento Pattern)是软件设计模式中的一种,属于行为模式。它提供了一种方式来恢复对象到之前的状态,即“撤销”操作。备忘录模式的核心思想是保存对象的内部状态,以便在需要时能恢复到这个状态,而...
备忘录模式(Memento Pattern)是软件设计模式中的一种行为模式,它的主要目的是在不破坏对象封装性的前提下,允许对象在特定时刻保存其内部状态,并能够在之后恢复到保存时的状态。这种模式广泛应用于撤销/重做功能...
在3 备忘录模式-MOOC课程内容.pdf中,可能包含以下内容: 1. 模式的概念与定义:解释备忘录模式的基本思想和应用场景。 2. 模式结构:详细介绍备忘录模式中的三个角色及其职责。 3. 模式实现:通过代码示例展示如何...
备忘录模式是一种行为型设计模式,用于捕获和存储一个对象的内部状态,以便于之后能够将对象恢复到这个状态。在软件体系结构中,备忘录模式特别适用于需要实现“撤销”功能或“回滚”操作的场景,如文本编辑器中的...
备忘录模式主要涉及三个角色: 1. **发起人(Originator)**:需要保存其内部状态的对象。它创建并存储备忘录,也可以从备忘录恢复状态。 2. **备忘录(Memento)**:存储发起人的内部状态。备忘录是发起人的私有...
备忘录模式是一种设计模式,它在不破坏封装性的前提下,保存对象的内部状态,以便在需要的时候恢复。在C#中,备忘录模式常用于实现撤销/重做功能,或者在需要记录和恢复对象状态的情况下。下面将详细解释备忘录模式...
备忘录模式是一种设计模式,属于行为模式类型,它的主要作用是保存对象的状态,以便在需要的时候能够恢复到之前的状态。这种模式的核心在于提供一种方式,可以在不破坏封装的前提下,捕获并存储一个对象的内部状态,...
备忘录模式是一种设计模式,属于行为模式类型,它的主要目的是在不破坏对象封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后恢复对象到先前的状态。这种模式通常用于实现撤销/重做...
备忘录模式是一种行为设计模式,它允许在不破坏对象封装性的前提下,保存和恢复对象的状态。在软件开发中,这种模式常用于实现撤销/重做功能或者在需要保存临时状态的情况下。以下是对备忘录模式的详细解释: 1. **...
备忘录模式是一种行为设计模式,它允许在不破坏封装性的前提下,捕获和恢复一个对象的内部状态。在C++中实现备忘录模式,可以有效地帮助开发者在程序运行过程中保存对象的状态,以便在需要时恢复到之前的状态,这...