예제 #1
0
        static void Main(string[] args)
        {
            Caretaker[] c          = new Caretaker[10];
            Originator  originator = new Originator();

            int move = 0;

            Simulator simulator = new Simulator();

            foreach (string command in simulator)
            {
                if (command[0] == '*' && move > 0)
                {
                    originator.GetMemento(c[move - 1].Memento);
                }
                else
                {
                    originator.Operation(command);
                }
                move++;
                c[move]         = new Caretaker();
                c[move].Memento = originator.SetMemento();
            }

            Console.ReadLine();
        }
예제 #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("***Memento Pattern Demo***\n");
            //Originator is initialized with a state
            Originator originatorObject = new Originator();
            Memento    mementoObject;

            originatorObject.State = "Opret state";
            mementoObject          = originatorObject.GetMemento();
            //Making a new state
            originatorObject.State = "ny state";
            // Restore to the previous state
            originatorObject.RevertToState(mementoObject);
            // Wait for user's input
            Console.ReadKey();
        }