Пример #1
0
        static void Main(string[] args)
        {
            Originator ori = new Originator("状态(1)");

            Console.WriteLine(ori.GetState());

            Caretaker ct = new Caretaker();

            ct.SetMemento(ori.CreateMemento());

            ori.SetState("状态(2)");
            Console.WriteLine(ori.GetState());

            ori.RestoreMemento(ct.GetMemento());
            Console.WriteLine(ori.GetState());
        }
Пример #2
0
        public static void Main()
        {
            Originator originator = new Originator();
            CareTaker  careTaker  = new CareTaker();

            originator.ChangeState(new State("状态一"));
            originator.ChangeState(new State("状态二"));

            //存储当前状态
            string key = originator.GetState().name;

            careTaker.AddMemento(key, originator.CreateMemento());

            originator.ChangeState(new State("状态三"));

            //恢复到之前备份的某一状态
            originator.RestoreFromMemento(careTaker.GetMemento(key));

            Debug.Log("目前状态:" + originator.GetState().name);
        }
Пример #3
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 #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.ReadKey();
        }