示例#1
0
文件: Program.cs 项目: alisherKAK/DP
        static void Main(string[] args)
        {
            // Клиентский код.
            Originator originator = new Originator("Super-duper-super-puper-super.");
            Caretaker  caretaker  = new Caretaker(originator);

            caretaker.Backup();
            originator.DoSomething();

            caretaker.Backup();
            originator.DoSomething();

            caretaker.Backup();
            originator.DoSomething();

            Console.WriteLine();
            caretaker.ShowHistory();

            Console.WriteLine("\nClient: Now, let's rollback!\n");
            caretaker.Undo();

            Console.WriteLine("\n\nClient: Once more!\n");
            caretaker.Undo();

            Console.WriteLine();
        }
示例#2
0
        public void Undo()
        {
            var memento = _caretaker.Undo();

            if (memento != null)
            {
                _originator.RestoreState(memento);
            }

            Console.WriteLine($"Current state: {GetStateValue()}");
        }