`
men4661273
  • 浏览: 278253 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java设计模式-Memento(备忘录)模式

    博客分类:
  • java
阅读更多
一、Memento模式的目的:
       memento是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原先保存的状态.

二、Memento模式的简单例子:


package memento;  
  
import java.io.File;  
  
public class Originator {  
      
    private int number;   
    private File file = null;  
      
    public Originator(){  
          
    }  
      
    // 创建一个Memento,将自身作为参数传入  
    public Memento getMemento(){  
        return new Memento(this);  
    }  
      
    //从Memento中取出保存的数据,恢复为原始状态  
    public void setMemento(Memento m){  
        number = m.getNumber();  
        file = m.getFile();  
    }  
  
    public int getNumber() {  
        return number;  
    }  
  
    public void setNumber(int number) {  
        this.number = number;  
    }  
  
    public File getFile() {  
        return file;  
    }  
  
    public void setFile(File file) {  
        this.file = file;  
    }     
}  
 
          package memento;  
  
import java.io.File;  
import java.io.Serializable;  
  
public class Memento implements Serializable {  
      
    private int number;  
    private File file = null;  
      
    public Memento(Originator o){  
        this.number = o.getNumber();  
        this.file = o.getFile();  
    }  
  
    public int getNumber() {  
        return this.number;  
    }  
  
    public void setNumber(int number) {  
        this.number = number;  
    }  
  
    public File getFile() {  
        return this.file;  
    }  
  
    public void setFile(File file) {  
        this.file = file;  
    }  
      
      
}  



三、Memento模式的特点:

在需要提供保存、恢复对象状态的类中,必须提供两个方法:

1.保存对象当前状态方法:将对象自身(this)作为参数传入,创建备忘录,也就通过
 public Memento getMemento(){  
        return new Memento(this);  
    } 
 

来构造一个Memento的对象,Memento类有一个带参的构造方法,参数为要保存的对象,这样,Memento对象就保存了Originator对象的属性
2.恢复对象之前状态的方法:,待Originator对象操作完成之后,通过
    
     public void setMemento(Memento m){      
                    number = m.getNumber();     
                    file = m.getFile();    
           } 
 

来传入之前构造的Memento对象,来恢复Originator原来对象的状态
该模式模式的缺点是耗费大,如果内部状态很多,再保存一份,无疑要浪费大量内存.

[img][/img]



参考 http://zuoqiang.iteye.com/blog/744024
  • 大小: 29.6 KB
分享到:
评论

相关推荐

    JAVA设计模式--备忘录模式.docx

    在实际开发中,备忘录模式可以与其他设计模式结合使用,如工厂模式用于创建备忘录对象,装饰器模式用于扩展备忘录的功能等。同时,需要注意的是,过度使用备忘录模式可能会导致内存消耗增加,因此在实现时需要权衡...

    Java设计模式-备忘录

    **Java设计模式——备忘录模式详解** 备忘录模式是一种行为设计模式,它允许对象在不破坏封装性的前提下捕获并存储其内部状态,以便稍后恢复到该状态。这种模式常用于在游戏中保存进度、撤销/重做操作、以及在复杂...

    java设计模式-备忘录模式源代码

    备忘录模式是一种在软件工程中广泛使用的面向对象设计模式,它主要用来安全地保存对象的状态,以便在需要时能够恢复到先前的状态。这个模式的名字来源于我们日常生活中使用的备忘录,它记录了一些重要的信息,当需要...

    java设计模式-备忘录模式

    Java设计模式中的备忘录模式(Memento Pattern)是一种用于保存对象状态的模式,以便在未来某一时刻能够恢复到之前的状态。这种模式的核心在于在不违反对象封装性的前提下,捕获对象的内部状态并将其存储起来。备忘...

    java常用设计模式-备忘录模式

    备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不破坏封装性的情况下捕获和恢复对象的内部状态。该模式通常用于需要撤销操作或恢复先前状态的情况下。备忘录模式包括三个主要组件:原始对象、备忘录...

    java设计模式---诙谐易懂版

    根据给定文件内容,以下是关于Java设计模式的知识点说明: 1. 策略模式(Strategy Pattern)是一种行为设计模式,允许在运行时选择算法的行为。策略模式的意图是定义一系列算法,将每个算法封装起来,并使它们可以...

    JAVA设计模式-chm版

    包括责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)、备忘录模式(Memento)、观察者模式(Observer)、状态模式...

    设计模式之备忘录模式(Memento Pattern)

    备忘录模式(Memento Pattern)是软件设计模式中的一种行为模式,它的主要目的是在不破坏对象封装性的前提下,允许对象在特定时刻保存其内部状态,并能够在之后恢复到保存时的状态。这种模式广泛应用于撤销/重做功能...

    设计模式之备忘录(memento)

    备忘录(Memento)模式是一种行为设计模式,它在不破坏封装性的前提下,捕获一个对象的内部状态,并允许该对象在以后恢复到这个状态。这种模式常用于需要保存和恢复对象状态的情景,例如撤销/重做功能、游戏存档或...

    设计模式之备忘录模式的Java版本实现

    备忘录模式是一种在软件设计中广泛使用的结构型设计模式,它的主要目的是为了保存对象的状态,以便在需要的时候能够恢复到之前的状态。备忘录模式的核心思想是通过创建一个备忘录对象来存储原对象的状态,这个备忘录...

    Memento备忘录设计模式实例-绘图程序

    这是运用Memento设计模式,设计的一个简单实例, 你可以通过工具栏选择绘制不同图形,使用备份创建备忘录,然后选择恢复进行绘制图形的恢复。 http://blog.csdn.net/ziyuanxiazai123/article/details/12421265

    备忘录模式.rar备忘录模式.rarjava设计模式

    备忘录模式是一种行为设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将对象恢复到原先保存的状态。这种模式常用于需要记录用户操作历史或者游戏进度...

    备忘录模式-极客学院-java-课件代码

    备忘录模式是一种行为设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将对象恢复到原先保存的状态。这种模式常用于需要撤销/重做操作的场景,或者在...

    JAVA设计模式--入门

    6. 备忘录模式(Memento):保存对象的状态,以便在需要时恢复。 7. 观察者模式(Observer):当对象状态改变时,通知所有依赖它的观察者。 8. 状态模式(State):允许对象在其内部状态改变时改变其行为。 9. 策略...

    java设计模式之备忘录模式

    备忘录模式是一种在软件设计中广泛使用的结构型设计模式,它主要用来安全地保存对象的状态,以便在需要时能够恢复到先前的状态。在Java中,备忘录模式的应用可以帮助我们处理复杂业务逻辑中的撤销与重做操作,提高...

    设计模式_备忘录模式.zip

    备忘录模式是一种在软件工程中广泛使用的结构型设计模式,其主要目的是为了在不破坏封装性的前提下,能够安全地保存对象的状态,并在需要时恢复到先前保存的状态。这种模式通常用于那些需要记录和回滚操作的重要场景...

    《Java设计模式》课后答案-刘伟.rar

    行为型设计模式如策略(Strategy)、模板方法(Template Method)、观察者(Observer)、命令(Command)、迭代器(Iterator)、访问者(...Chain of Responsibility)、解释器(Interpreter)和备忘录(Memento)...

    JAVA design pattern-java设计模式

    行为型模式关注对象之间的通信和责任分配,如命令(Command)、解释器(Interpreter)、迭代器(Iterator)、中介者(Mediator)、备忘录(Memento)、观察者(Observer)、状态(State)、策略(Strategy)、模板...

    设计模式例子备忘录模式

    备忘录模式是一种在软件工程领域广泛使用的设计模式,它属于行为设计模式,主要目的是为了在不破坏对象封装性的前提下,保存一个对象的内部状态,以便在需要时能够恢复到之前的状态。这个模式通常应用于撤销/重做...

    《java设计模式》课后习题模拟试题解答——刘伟.zip

    3. **行为型模式**:包括策略(Strategy)、模板方法(Template Method)、观察者(Observer)、迭代器(Iterator)、访问者(Visitor)、责任链(Chain of Responsibility)、命令(Command)、备忘录(Memento)、...

Global site tag (gtag.js) - Google Analytics