Memento Pattern
- Used to provide undo actions
- Externalize internal state
Main
public static void main(String[] args) {
Caretaker c = new Caretaker();Employee e = new Employee();e.setName("Chalan");e.setNumber("11111111");e.setAddress("NA");c.save(e);System.out.println(e);e.setNumber("2w222222");c.save(e);e.setNumber("33333");System.out.println(e);c.revert(e);System.out.println(e);c.revert(e);System.out.println(e);}
Caretaker
public class Caretaker {
private Stack<EmployeeMemento> history = new Stack<EmployeeMemento>();public void save(Employee e){history.push(e.save());}public void revert(Employee e){e.revert(history.pop());}}
Employee
public class Employee {
private String name;private String number;private transient String address;//getters & setters}
EmployeeMemento
public class EmployeeMemento {
private String name;private String number;public EmployeeMemento( String name, String number){this.name = name;this.number = number;}public String getName() {return name;}public String getNumber() {return number;}}

Comentarios
Publicar un comentario