package memento;
/**
* 备忘录(用于存放状态的类)
* @author Administrator
*
*/
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;
/**
* 保存和读取备忘录的类
* @author Administrator
*
*/
public class Creater {
private Memento memento;
/**
* 保存备忘录
* @param memento
*/
public void saveMemento(Memento memento){
this.memento=memento;
}
/**
* 读取存档
* @return
*/
public Memento readMemento(){
return this.memento;
}
}
package memento;
/**
* 发起人角色 负责创建备忘录对象将自己的内部状态存储起来
* @author Administrator
*
*/
public class Originator {
private String state;
/**
* 创建备忘录
* @param state
* @return
*/
public Memento createMemento(){
return new Memento(state);
}
/**
* 读取存档复制给state
* @param memento
*/
public void restoreMemento(Memento memento){
this.state = memento.getState();
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
System.out.println("state is "+state);
}
}
package memento;
/**
* Client 客户端类
* @author Administrator
*
*/
public class MementoMain {
public static void main(String[] args) {
Originator org = new Originator();
org.setState("ON");
Memento m = org.createMemento();
Creater c= new Creater();
c.saveMemento(m);
org.setState("OFF");
org.restoreMemento(c.readMemento());
System.out.println(org.getState());
}
}