备忘录模式

备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。以下是例子:

public class Originator {  

String stata;

static Memento temp;

public String setState(String str){

//设置状态

System.out.println("State="+str);

return str; }

public Memento CreateMemento(String state){

temp = new Memento(state);

return temp; }

public void SetMemento(Memento memento){

System.out.println("恢复初始状态");

System.out.println("State="+temp.State()); } }

 

 //管理类

public class Caretaker {
Memento memento;
}

 

//备忘录类  

public class Memento {

String state;

public Memento(String state){

this.state = state; }

public String State(){

return state; } }

//测试类

public class Test {

public static void main(String[] args) {

Originator o = new Originator();

String str = o.setState("ON"); //初始状态为"On"

Caretaker c = new Caretaker();

c.memento = o.CreateMemento(str); //保存状态时,由于有了很多的封装,可以隐藏Originator的实现细节

o.setState("OFF"); //Originator改变了状态属性为"OFF"

o.SetMemento(c.memento); //恢复初始状态 } }

你可能感兴趣的:(备忘录模式)