Java备忘录模式 Java解释器模式 Java观察者模式 Java备忘录模式 备忘录模式(Memento Pattern)用来恢复一个对象的状态到以前的状态。 备忘录模式下属于行为模式的类别。 实例 在这个示例中,备忘录模式(Memento Pattern)使用三个操作者类。 Memento类中包含要恢复的对象的状态。 创建者在Memento对象中创建和存储状态,Caretaker对象负责从Memento中恢复对象状态。在这个示例中,创建了以下几个类:Memento,Originator和CareTaker。 MementoPatternDemo这是一个演示类,它将使用CareTaker和Originator对象来显示对象状态的恢复。 备忘录模式(Memento Pattern)示例的结构如下图所示 第1步 创建一个Memento类,其代码如下 Memento.java public class Memento { private String state; public Memento(String state){ this.state = state; } public String getState(){ return state; } } 第2步 创建一个Originator类,其代码如下 Originator.java public class Originator { private String state; public void setState(String state){ this.state = state; } public String getState(){ return state; } public Memento saveStateToMemento(){ return new Memento(state); } public void getStateFromMemento(Memento memento){ state = Memento.getState(); } } 第3步 创建一个CareTaker类,其代码如下 CareTaker.java import java.util.ArrayList; import java.util.List; public class CareTaker { private List<Memento> mementoList = new ArrayList<Memento>(); public void add(Memento state){ mementoList.add(state); } public Memento get(int index){ return mementoList.get(index); } } 第4步 创建一个类-MementoPatternDemo并使用CareTaker和Originator对象。 MementoPatternDemo.java public class MementoPatternDemo { public static void main(String[] args) { Originator originator = new Originator(); CareTaker careTaker = new CareTaker(); originator.setState("State #1"); originator.setState("State #2"); careTaker.add(originator.saveStateToMemento()); originator.setState("State #3"); careTaker.add(originator.saveStateToMemento()); originator.setState("State #4"); System.out.println("Current State: " + originator.getState()); originator.getStateFromMemento(careTaker.get(0)); System.out.println("First saved State: " + originator.getState()); originator.getStateFromMemento(careTaker.get(1)); System.out.println("Second saved State: " + originator.getState()); } } 第5步 验证输出,执行上面的代码得到以下结果 Current State: State #4 First saved State: State #2 Second saved State: State #3 Java解释器模式 Java观察者模式