备忘录(Memento)获取并保存一个对象(原发器)的内部状态,并在需要的时候将该对象恢复到之前保存的状态。
备忘录模式包含三部分:
- Memento 备忘录,存储Originator的内部状态
- Originator 原发器,创建备忘录以记录当前状态,及使用备忘录恢复状态
- Caretaker 负责人,负责保存备忘录
Memento
class Memento {
private String state;
public void setState(String state) {
this.state = state;
}
public String getState() {
return state;
}
}
Originator
class Originator {
private String state;
public Memento createMemento() {
Memento memento = new Memento();
memento.setState(state);
return memento;
}
public void setMemento(Memento memento) {
state = memento.getState();
}
}
Caretaker
class Caretaker {
private List<Memento> mementoList = new ArrayList<Memento>();
public void add(Memento memento) {
mementoList.add(memento);
}
public Memento get(int index) {
return mementoList.get(index);
}
}