备忘录模式(Memento Pattern)
在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
涉及角色:
1.Original(发起人):负责创建一个备忘录Memento,用以记录当前时刻自身的内部状态,并可使用备忘录恢复内部状态。Originator可以根据需要决定Memento存储自己的哪些内部状态。
2.Memento(备忘录):负责存储Originator对象的内部状态,并可以防止Originator以外的其他对象访问备忘录。备忘录有两个接口:Caretaker只能看到备忘录的窄接口,他只能将备忘录传递给其他对象。Originator却可看到备忘录的宽接口,允许它访问返回到先前状态所需要的所有数据。
3.Caretaker(管理者):负责备忘录Memento,不能对Memento的内容进行访问或者操作。
public class Original{
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public Original(String value) {
this.value = value;
}
public Memento createMemento(){
return new Memento(value);
}
public void restoreMemento(Memento memento){
this.value = memento.getValue();
}
}
public class Memento {
private String value;
public Memento(String value) {
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
public class Caretaker{
private Memento memento;
public Caretaker(Memento memento) {
this.memento = memento;
}
public Memento getMemento() {
return memento;
}
public void setMemento(Memento memento) {
this.memento = memento;
}
}
测试类
public class Test {
public static void main(String[] args) {
// 创建发起人
Original origi = new Original("1");
// 创建备忘录
Caretaker caretaker = new Storage(origi.createMemento());
// 修改原始类的状态
System.out.println("初始化状态为:" + origi.getValue());
origi.setValue("2");
System.out.println("修改后的状态为:" + origi.getValue());
// 回复原始类的状态
origi.restoreMemento(caretaker.getMemento());
System.out.println("恢复后的状态为:" + origi.getValue());
}
}
测试结果
初始化状态为:1
修改后的状态为:2
恢复后的状态为:1
分享到:
相关推荐
备忘录模式是一种在软件工程中广泛使用的面向对象设计模式,它主要用来安全地保存对象的状态,以便在需要时能够恢复到先前的状态。备忘录模式的核心思想是封装对象的状态,将其保存到一个独立的对象(备忘录)中,而...
备忘录模式是一种在软件工程中广泛使用的面向对象设计模式,它主要用来安全地保存对象的状态,以便在需要时能够恢复到先前的状态。这个模式的名字来源于我们日常生活中使用的备忘录,它记录了一些重要的信息,当需要...
备忘录模式是一种在不破坏封装性的前提下,捕获一个对象的状态,并允许在未来的某个时刻恢复这个状态的设计模式。这种模式在很多场景下都非常有用,例如在游戏中保存进度、在编辑器中撤销/重做操作等。备忘录模式的...
备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不破坏封装性的情况下捕获和恢复对象的内部状态。该模式通常用于需要撤销操作或恢复先前状态的情况下。备忘录模式包括三个主要组件:原始对象、备忘录...
Java设计模式中的备忘录模式(Memento Pattern)是一种用于保存对象状态的模式,以便在未来某一时刻能够恢复到之前的状态。这种模式的核心在于在不违反对象封装性的前提下,捕获对象的内部状态并将其存储起来。备忘...
JAVA-设计模式-行为型模式-备忘录模式
**Java设计模式——备忘录模式详解** 备忘录模式是一种行为设计模式,它允许对象在不破坏封装性的前提下捕获并存储其内部状态,以便稍后恢复到该状态。这种模式常用于在游戏中保存进度、撤销/重做操作、以及在复杂...
备忘录模式是一种常用的设计模式,它在软件工程中用于保存对象的状态,以便在需要时恢复到之前的状态。这种模式的主要目标是实现数据的安全存储,同时保持对象的封装性,避免对外部对象直接访问其内部状态。在iOS...
c++设计模式-行为型模式-备忘录模式;qt工程;c++简单源码;备忘录(Memento)模式的定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先...
在实际开发中,备忘录模式可以与其他设计模式结合使用,如工厂模式用于创建备忘录对象,装饰器模式用于扩展备忘录的功能等。同时,需要注意的是,过度使用备忘录模式可能会导致内存消耗增加,因此在实现时需要权衡...
设计模式-备忘录模式
Java中的备忘录设计模式允许开发人员捕获和恢复对象的内部状态,而不违反封装。 ## 二、详细解释及实际示例 ... - 备忘录模式是一种软件设计模式,它提供了将对象恢复到其以前状态(通过回滚撤销)的能力。
备忘录模式(Memento Pattern)是软件设计模式中的一种,属于行为模式。它提供了一种方式来恢复对象到之前的状态,即“撤销”操作。备忘录模式的核心思想是保存对象的内部状态,以便在需要时能恢复到这个状态,而...
备忘录模式是一种行为设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态。这种模式通常用于游戏存档、撤销/重做操作、以及...
备忘录模式主要涉及三个角色: 1. **发起人(Originator)**:需要保存其内部状态的对象。它创建并存储备忘录,也可以从备忘录恢复状态。 2. **备忘录(Memento)**:存储发起人的内部状态。备忘录是发起人的私有...
备忘录模式(Memento Pattern)是软件设计模式中的一种行为模式,它的主要目的是在不破坏对象封装性的前提下,允许对象在特定时刻保存其内部状态,并能够在之后恢复到保存时的状态。这种模式广泛应用于撤销/重做功能...
备忘录模式是一种在软件工程中广泛使用的结构型设计模式,其主要目的是为了在不破坏封装性的前提下,能够安全地保存对象的状态,并在需要时恢复到先前保存的状态。这种模式通常用于那些需要记录和回滚操作的重要场景...
备忘录模式是一种行为设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将对象恢复到原先保存的状态。这种模式常用于需要记录用户操作历史或者游戏进度...
备忘录模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在需要保护对象内部状态不被外部篡改的场景下。备忘录模式的核心思想是提供一种方法来捕获一个对象的内部状态,并在该对象之外保存这个状态...