《大话设计模式》第十八章
package ch18;
public class Memento {
private String state;
public Memento(String state) {
this.state = state;
}
public String getState() {
return state;
}
}
package ch18;
public class Originator {
private String state;
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public Memento createMemento() {
return new Memento(state);
}
public void setMemento(Memento memento) {
state = memento.getState();
}
public void show() {
System.out.println("State = " + state);
}
}
package ch18;
public class Caretaker {
private Memento memento;
public Memento getMemento() {
return memento;
}
public void setMemento(Memento memento) {
this.memento = memento;
}
}
package ch18;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
Originator o = new Originator();
o.setState("on");
o.show();
Caretaker c = new Caretaker();
c.setMemento(o.createMemento());
o.setState("off");
o.show();
o.setMemento(c.getMemento());
o.show();
}
}
运行:
State = on
State = off
State = on
在JDK中,我们可以通过实现java.io.Serializable接口来保存对象的状态。