定义
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
备忘录模式通常有一下几种角色:
● Originator发起人角色
记录当前时刻的内部状态,负责定义哪些属于备份范围的状态,负责创建和恢复备忘录数据。
● Memento备忘录角色
负责存储Originator发起人对象的内部状态,在需要的时候提供发起人需要的内部状态。
● Caretaker备忘录管理员角色
对备忘录进行管理、保存和提供备忘录。
案例
/**
* 备忘录类
*/
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 void setState(String state) {
this.state = state;
}
public String getState() {
return state;
}
//保存状态到备忘录对象
public Memento saveStateToMemento() {
return new Memento(state);
}
//从备忘录对象中获取状态
public void getStateFromMemento(Memento memento) {
state = memento.getState();
}
}
/**
* 备忘录管理人员
*/
public class CareTaker {
private List<Memento> mementoList = new ArrayList<>();
//添加备忘录对象
public void add(Memento memento) {
mementoList.add(memento);
}
//获取备忘录对象
public Memento get(int index) {
return mementoList.get(index);
}
}