예제 #1
0
        static void Main(string[] args)
        {
            Originator originator = new Originator("stato 1");
            //CareTaker ct = new CareTaker(originator.SaveMemento());
            CareTaker ct = new CareTaker();

            ct.AddMemento(originator.SaveMemento());
            Console.WriteLine("stato: " + originator.Text);

            originator.Text = "stato modificato";
            Console.WriteLine("stato: " + originator.Text);
            ct.AddMemento(originator.SaveMemento());

            originator.Text = "stato modificato2";
            Console.WriteLine("stato: " + originator.Text);
            ct.AddMemento(originator.SaveMemento());

            originator.Text = "stato modificato3";
            Console.WriteLine("stato: " + originator.Text);

            originator.RestoreMemento(ct.GetMemento());
            Console.WriteLine("stato: " + originator.Text);

            originator.RestoreMemento(ct.GetMemento());
            Console.WriteLine("stato: " + originator.Text);

            //originator.RestoreMemento(ct.Memento);
            //Console.WriteLine("stato: " + originator.Text);

            // The code provided will print ‘Hello World’ to the console.
            // Press Ctrl+F5 (or go to Debug > Start Without Debugging) to run your app.
            Console.WriteLine("Hello World!");
            Console.ReadKey();

            // Go to http://aka.ms/dotnet-get-started-console to continue learning how to build a console app!
        }
예제 #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);
        }