Exemplo n.º 1
0
            public static void Memento()
            {
                Originator o = new Originator();
                Caretaker  c = new Caretaker();

                o.SetMemento(new Memento {
                    State = "NEW"
                });
                c.Memento.Push(o.Create());
                o.SetMemento(new Memento {
                    State = "OTHER"
                });
                o.SetMemento(c.Memento.Pop());

                //Console.WriteLine("Originator has state: " + o.)
            }
Exemplo n.º 2
0
        public static void Main(string[] args)
        {
            // creation pattern lab 10
            ICreator[] creators = { new HumanDepartmentCreator(), new GuardCreator(), new EmployeeCreator(), new InspectorCreator() };
            foreach (ICreator creator in creators)
            {
                IPosition position = creator.FactoryMethod();
                position.Greetings();
            }


            // structural pattern 11
            Pass pass = new Adapter();

            pass.ScreenSay();


            // behaviour pattern Memento 12
            Originator o = new Originator();
            Caretaker  c = new Caretaker();

            o.State   = "Ivanenko Stepan";
            c.Memento = o.CreateMemento();
            o.State   = "Stepanenko Ivan";
            c.Memento = o.CreateMemento();
            o.State   = "Vasylenko Olexandr";
            o.SetMemento(c.Memento);


            // chain responsibility pattern 13
            var task1 = new Job("Dry oil around engine", new List <string> {
                "Rag", "Gas", "Mop"
            });
            var task2 = new Job("Dry flor around circulating pump", new List <string> {
                "Rag", "Mop"
            });
            var task3 = new Job("Change bearing", new List <string> {
                "Bearing", "Oil"
            });
            var task4 = new Job("Brew a gap in circulating pump", new List <string> {
                "Welding machine"
            });
            var task5 = new Job("Repair engine", new List <string> {
                "Key", "Bearing", "Oil"
            });
            var locksmith = new Locksmith(null);
            var welder    = new Welder(locksmith);
            var housemaid = new Housemaid(welder);

            housemaid.HandleJob(task1);
            housemaid.HandleJob(task2);
            housemaid.HandleJob(task3);
            housemaid.HandleJob(task4);
            housemaid.HandleJob(task5);

            Console.Read();
        }
Exemplo n.º 3
0
        static void Invock14()
        {
            Originator ori = new Originator();

            ori.State = "开";
            ori.Show();

            Caretaker car = new Caretaker();

            car.Memento = ori.CreateMemento();

            ori.State = "关";
            ori.Show();


            ori.SetMemento(car.Memento);
            ori.Show();
        }
Exemplo n.º 4
0
        // Memento
        public static void TetsMemento()
        {
            Console.WriteLine("- {0} -", typeof(Memento).Name);
            Console.WriteLine();

            Originator originator = new Originator();

            originator.State = "On";
            Console.WriteLine("Current state {0}", originator.State);
            Caretaker caretaker = new Caretaker();

            caretaker.Memento = originator.CreateMemento();
            originator.State  = "Off ";
            Console.WriteLine("Changed state {0}", originator.State);
            originator.SetMemento(caretaker.Memento);
            Console.WriteLine("First state {0}", originator.State);

            Console.WriteLine("***************************************");
            Console.WriteLine();
        }
Exemplo n.º 5
0
        static void Invock14()
        {
            Console.WriteLine("原始状态数据:");
            var ori = new Originator
            {
                State = "开"
            };

            ori.Show();

            Console.WriteLine("备忘状态:");
            var car = new Caretaker
            {
                Memento = ori.CreateMemento()
            };

            Console.WriteLine("改变原对象状态后:");
            ori.State = "关";
            ori.Show();

            Console.WriteLine("恢复对象状态后:");
            ori.SetMemento(car.Memento);
            ori.Show();
        }