11.1
备忘录模式
下面是一个简单的备忘录模式的示例代码,使用Java语言实现:
// 备忘录类
class Memento {
private String state;
public Memento(String state) {
this.state = state;
}
public String getState() {
return state;
}
}
// 发起人类
class Originator {
private String state;
public void setState(String state) {
this.state = state;
}
public String getState() {
return state;
}
public Memento createMemento() {
return new Memento(state);
}
public void restoreMemento(Memento memento) {
this.state = memento.getState();
}
}
// 管理者类
class Caretaker {
private Memento memento;
public void setMemento(Memento memento) {
this.memento = memento;
}
public Memento getMemento() {
return memento;
}
}
// 测试类
public class MementoPatternExample {
public static void main(String[] args) {
Originator originator = new Originator();
Caretaker caretaker = new Caretaker();
// 设置初始状态
originator.setState("State 1");
System.out.println("初始状态:" + originator.getState());
// 保存状态
caretaker.setMemento(originator.createMemento());
// 修改状态
originator.setState("State 2");
System.out.println("修改后的状态:" + originator.getState());
// 恢复状态
originator.restoreMemento(caretaker.getMemento());
System.out.println("恢复后的状态:" + originator.getState());
}
}
在上述示例中,我们定义了三个类:Memento
(备忘录类)、Originator
(发起人类)和Caretaker
(管理者类)。发起人类保存当前状态、创建备忘录对象、恢复状态;备忘录类存储状态信息;管理者类负责保存备忘录对象。
在测试类中,我们创建了一个发起人对象和一个管理者对象。我们通过设置初始状态、创建备忘录、修改状态、恢复状态的步骤来演示备忘录模式的使用。通过保存和恢复备忘录对象,我们可以在需要时回滚到之前的状态。
这个简单的示例展示了备忘录模式的基本结构和使用方法。实际应用中,可以根据具体需求扩展和优化备忘录模式的实现。