Beispiel #1
0
        static void Main(string[] args)
        {
            // Create an originator.
            var originator = new Originator <Character>();
            // Create a caretaker with passed originator instance.
            var caretaker = new Caretaker <Character>(originator);

            // Create Alice character with default stats.
            var alice = new Character("Alice");
            // Create others characters with initial stats.
            var bob       = new Character("Bob", 12, 10, 11);
            var christine = new Character("Christine", 25, -4, 0);

            // Set state to Alice.
            originator.SetState(alice);
            // Save state.
            caretaker.Save();

            // Set state to Bob.
            originator.SetState(bob);
            var bobMemento = caretaker.Save();

            // Set state to Christine.
            originator.SetState(christine);
            caretaker.Save();

            // Restore state back to Bob.
            caretaker.Restore(bobMemento);
        }