我正在实现一个需要我使用备忘录模式的撤消/重做功能。
部分程序的流程:“......程序然后使用Memento Pattern存储之前的Vector,然后将新创建的对象添加到Vector中。之后,用户可以选择一个show命令来显示Vector里面的内容,他也可以输入undo命令来恢复,可以重复undo,直到恢复到原来的状态……”
根据我的研究,我知道会有一个创始人、纪念品和看守人。
这是我的看护计划
public class CareTaker {
private Memento m;
private Stack s;
private Vector v;
// Some of the implementation are not shown
public void create() {
// Some of the implementation are not shown
// Assuming Vector is named "v"
// Passing Vector to memento
m = new Memento(v);
s.add(m);
}
public void undo() {
v = s.pop().restore();
}
}
public class Memento {
private Vector _v;
public Memento(Vector v) {
_v = v;
}
public Vector restore() {
return _v;
}
}
不幸的是,我未能确定“发起人”,也不知道会是谁。如果没有 Originator,此代码片段是否曾经是正确的 Memento 模式?