示例#1
0
        public static void Main(string[] args)
        {
            Caretaker caretaker = new Caretaker();

            caretaker.TypeNewLine("My name is ");
            caretaker.TypeNewLine("Fernando");
            caretaker.TypeNewLine("Rodrigues");
            caretaker.TypeNewLine("Ferreira");

            Console.WriteLine(caretaker.GetText());
            Console.WriteLine();

            caretaker.Undo();
            caretaker.Undo();
            caretaker.Undo();

            Console.WriteLine(caretaker.GetText());
            Console.WriteLine();

            caretaker.Undo();

            Console.WriteLine(caretaker.GetText());
            Console.WriteLine();

            Console.ReadKey();
        }
示例#2
0
        static void Main(string[] args)
        {
            // Client code.
            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();
        }
示例#3
0
        public static void Execute()
        {
            var person = new Person()
            {
                Name      = "Adam Adamski",
                BirthDate = new DateTime(1989, 12, 12)
            };

            var caretaker = new Caretaker <Person>(person);

            Console.WriteLine($"Name: {person.Name}");
            caretaker.Save();

            person.Name = "Ewa Adamska";
            Console.WriteLine($"Name: {person.Name}");
            caretaker.Save();

            person.Name = "Ewa Ewowska";
            Console.WriteLine($"Name: {person.Name}");

            while (true)
            {
                caretaker.Save();
            }

            caretaker.Undo();
            Console.WriteLine($"Name: {person.Name}");
            caretaker.Undo();
            Console.WriteLine($"Name: {person.Name}");
            caretaker.Undo();
            Console.WriteLine($"Name: {person.Name}");
        }
示例#4
0
        public static void Mein()
        {
            var originator = new Originator("Hello world!");
            var caretaker  = new Caretaker(originator);

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

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

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

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

            // Undo the changes.
            caretaker.Undo();
            caretaker.ShowHistory();

            caretaker.Undo();
            caretaker.Undo();
        }