这个模式回头再看吧,把我给绕蒙圈了。
public class Memento {
private String state;
public Memento (String state)
{
this.state=state;
}
public String getState() {
return state;
}
}
public class Originator {
private String state;
public Memento CreateMemento()
{
return new Memento(state);
}
public void SetMemento(Memento memento)
{
state = memento.getState();
}
public void Show()
{
System.out.println("State="+state);
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
public class Caretaker {
private Memento memento;
public Memento getMemento() {
return memento;
}
public void setMemento(Memento memento) {
this.memento = memento;
}
}
测试程序
public class Program {
public static void main(String[] args) {
// TODO Auto-generated method stub
Originator originator = new Originator();
originator.setState("On");
originator.Show();
Caretaker caretaker = new Caretaker();
caretaker.setMemento(originator.CreateMemento());
originator.setState("off");
originator.Show();
originator.SetMemento(caretaker.getMemento());
originator.Show();
}
}