Exemple #1
0
 public void revert(EmployeeOriginator employee)
 {
     if (employeeHistory.Count() > 0)
     {
         employee.setMemento(employeeHistory.Pop());
     }
 }
        static void Main(string[] args)
        {
            Caretaker caretaker = new Caretaker();

            EmployeeOriginator employee = new EmployeeOriginator();

            employee.setName("John Wick");
            employee.setAddress("111 Main Street");
            employee.setPhone("888-555-1212");
            Console.WriteLine("Employee before save: " + employee.getName() + " " + employee.getAddress() + "  " + employee.getPhone());
            caretaker.save(employee);


            employee.setPhone("444-555-6666");
            caretaker.save(employee);
            Console.WriteLine("Employee after changed phone number save: " + employee.getName() + "  " + employee.getAddress() + "  " + employee.getPhone());

            employee.setPhone("333-999-6666"); // <--- we haven't called save!
            caretaker.revert(employee);
            Console.WriteLine("Reverts to last save point: " + employee.getName() + "  " + employee.getAddress() + "  " + employee.getPhone());

            //caretaker.revert(employee);
            //Console.WriteLine("Reverted to original: " + employee.getName() + "  " + employee.getAddress() + "  " + employee.getPhone());

            //caretaker.revert(employee);
            //Console.WriteLine("Reverted to original: " + employee.getName() + "  " + employee.getAddress() + "  " +employee.getPhone());

            Console.Read();
        }
Exemple #3
0
 public void save(EmployeeOriginator employee)
 {
     employeeHistory.Push(employee.createMemento());
 }