Exemple #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Memento");
            Console.WriteLine("Memento and Command Example");

            var originator = new Originator(0);
            var caretaker  = new Caretaker(originator);

            // 1 + 2 + 3 + 4 + 5 = 15 (state)
            for (var i = 1; i <= 5; i++)
            {
                originator.Add(i);
            }
            caretaker.Backup();

            // 15 - 10 = 5 (state)
            originator.Subtract(10);
            caretaker.Backup();

            // 5 * 8 = 40 (state)
            originator.MultiplyBy(8);
            caretaker.Backup();

            // 40 / 20 = 2 (state)
            originator.DivideBy(20);
            caretaker.Backup();

            for (int i = 0; i <= 10; i++)
            {
                caretaker.RestorePreviousState();
            }
        }