Exemplo n.º 1
0
        static void Main(string[] args)
        {
            Originator originator = new Originator();
            CareTaker  careTaker  = new CareTaker();

            //设定初始状态
            originator.setState("hello");
            Console.WriteLine($"初始状态:{originator.getState()}");
            //保存状态
            careTaker.setMemento(originator.CreatMemento());
            //修改状态
            originator.setState("world");
            Console.WriteLine($"修改后状态:{originator.getState()}");

            //恢复状态
            originator.restoreMemento(careTaker.GetMemento());
            Console.WriteLine($"恢复后状态:{originator.getState()}");

            Console.Read();
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            Originator originator = new Originator();
            CareTaker  careTaker  = new CareTaker();

            originator.setState("State #1");
            originator.setState("State #2");
            careTaker.add(originator.saveStateToMemento());
            originator.setState("State #3");
            careTaker.add(originator.saveStateToMemento());
            originator.setState("State #4");

            Console.WriteLine("Current State: " + originator.getState());
            originator.getStateFromMemento(careTaker.get(0));
            Console.WriteLine("First saved State: " + originator.getState());
            originator.getStateFromMemento(careTaker.get(1));
            Console.WriteLine("Second saved State: " + originator.getState());

            Console.WriteLine("Hello World!");
        }