package Memento;
/*
类-备忘录
*/
public class Memento {
private String state;//状态
public Memento(String state){//构造对象
this.state=state;
}
public String getState() {//获得状态
return state;
}
public void setState(String state) {//设置状态
this.state = state;
}
}
package Memento;
/*
备忘录管理
*/
public class Caretaker {
private Memento memento;//备忘录
public Memento getMemento() {//获得备忘录
return memento;
}
public void setMemento(Memento memento) {//设置备忘录
this.memento = memento;
}
}
package Memento;
/*
发起者
*/
public class Originator {
private String statue;//状态
public String getStatue() {//获得状态
return statue;
}
public void setStatue(String statue) {//设置状态
this.statue = statue;
}
public Memento createMemento(String statue){//构建备忘录存储状态
return new Memento(statue);
}
public void restoreMemento(Memento memento){//从备忘录拿出状态恢复状态
this.setStatue(memento.getState());
}
}
package Memento;
public class Test {
public static void main(String[] args) {
Originator or=new Originator();//发起对象
Caretaker cr=new Caretaker();//备忘录管理对象
or.setStatue("old");//发起设置状态
System.out.println(or.getStatue());
cr.setMemento(or.createMemento(or.getStatue()));//备忘录管理对象设置备忘录
or.setStatue("new");//发起设置新状态
System.out.println(or.getStatue());
or.restoreMemento(cr.getMemento());//发起对象恢复状态
System.out.println(or.getStatue());
}
}
