Example #1
0
        static void Main(string[] args)
        {
            Originator o = new Originator();

            o.State = "On";
            // Store internal state
            Caretaker c = new Caretaker();

            c.Memento = o.CreateMemento();

            // Continue changing originator
            o.State = "Off";
            // Restore saved state
            o.SetMemento(c.Memento);

            Console.ReadLine();
        }
Example #2
0
        static void RunMemento()
        {
            // 可以理解用一个类来储存另一个类状态
            Originator o = new Originator();

            o.State = "On";

            // Store internal state
            Caretaker c = new Caretaker();

            c.Memento = o.CreateMemento();

            // Continue changing originator
            o.State = "Off";

            // Restore saved state
            o.SetMemento(c.Memento);
        }