Java - wzór Memento i Undo
Wdrażam funkcję cofania / ponawiania, która wymaga użycia wzorca memento.
Przepływ programu częściowego: „... program następnie przechowuje poprzedni wektor za pomocą wzorca Memento, następnie nowo utworzony obiekt zostanie dodany do wektora. , może również wprowadzić polecenie Cofnij, aby przywrócić, cofnięcie można powtórzyć, dopóki nie zostanie przywrócone do pierwotnego stanu ... ”
Z moich badań wiem, że powstanie pomysłodawca, pamiątka i dozorca.
Oto mój program dozorcy
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;
}
}
Niestety nie udało mi się zidentyfikować „inicjatora” ani nie wiem, który będzie. Czy ten fragment kodu jest poprawnym wzorem Memento, jeśli nie ma inicjatora?