Пример #1
0
        static void Main(string[] args)
        {
            //原状态
            Originator originator = new Originator()
            {
                State  = "王二",
                State2 = "礼物"
            };

            Console.WriteLine("原始值:{0}", originator.State);

            //快照
            originator.CreaterMemento();

            CareTaker careTaker = new CareTaker();

            careTaker.Memento = originator.CreaterMemento();

            originator.State = "张三";


            Console.WriteLine("修改后得值:{0}", originator.State);

            //撤销
            originator.RemoveMemento(careTaker.Memento);

            Console.WriteLine("赋值错误修复中{0}", originator.State);

            Console.ReadLine();
        }
Пример #2
0
        static void Main(string[] args)
        {
            Originator originator = new Originator();
            CareTaker  careTaker  = new CareTaker();

            originator.State = "State #1";
            originator.State = "State #2";
            careTaker.Add(originator.saveStateToMemento());
            originator.State = "State #3";
            careTaker.Add(originator.saveStateToMemento());
            originator.State = "State #4";

            Console.WriteLine("Current State: " + originator.State);
            originator.GetStateFromMemento(careTaker.Get(0));
            Console.WriteLine("First saved State: " + originator.State);
            originator.GetStateFromMemento(careTaker.Get(1));
            Console.WriteLine("Second saved State: " + originator.State);

            Console.ReadKey();
        }
Пример #3
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();
        }
Пример #4
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!");
        }
Пример #5
0
        static void Main(string[] args)
        {
            //创建角色
            Originator o = new Originator("史柯", 19, 183);
            //创建备忘录管理者
            CareTaker c = new CareTaker();

            c.Memento = o.CreateMemento();
            Console.WriteLine(o);

            //更改状态
            o.Name   = "徐佳丽";
            o.Age    = 20;
            o.Heigth = 160;
            Console.WriteLine(o);

            //还原状态
            o.SetMemento(c.Memento);
            Console.WriteLine(o);

            Console.ReadKey();
        }