コード例 #1
0
ファイル: Program.cs プロジェクト: BeanCjc/Design-Pattern
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Console.WriteLine("--------------------ObserverPattern--------------------");
            Console.WriteLine();
            IList <Contact> contacts = new List <Contact>
            {
                new Contact {
                    Name = "张三", MobileNumber = "13566778901"
                },
                new Contact {
                    Name = "李四", MobileNumber = "15835368686"
                },
                new Contact {
                    Name = "王五", MobileNumber = "15160266300"
                }
            };
            var originator = new Originator("Bean", contacts);

            originator.Show();
            Console.WriteLine();

            //创建备忘录
            var manager = new MementoManager();
            var memento = originator.CreateMemento();

            manager.ContactMementoList.Add(originator.Name, new List <ContactMemento> {
                memento
            });
            manager.Show();
            Console.WriteLine();

            //修改通讯录
            Console.WriteLine("----------------移除最后一个联系人---------");
            originator.Contacts.RemoveAt(2);
            originator.Show();
            Console.WriteLine();

            //回复通讯录
            Console.WriteLine("----------------回复通讯录列表-------------");
            originator.RestoreMemento(memento);
            originator.Show();

            Console.ReadKey();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            List <MemetoObj> persons = new List <MemetoObj>()
            {
                new MemetoObj()
                {
                    Name = "素还真", MemetoStr = "找大师"
                },
                new MemetoObj()
                {
                    Name = "一页书", MemetoStr = "笑尽英雄"
                },
                new MemetoObj()
                {
                    Name = "叶小钗", MemetoStr = "刀狂剑痴"
                }
            };

            //手机名单发起人
            MemetoOriginator mobileOriginator = new MemetoOriginator(persons);

            mobileOriginator.Show();

            // 创建备忘录并保存备忘录对象
            MementoManager manager = new MementoManager();

            manager.Memento = mobileOriginator.CreateMemento();

            // 更改发起人联系人列表
            Console.WriteLine("----移除最后一个联系人--------");
            mobileOriginator.MemetoList.RemoveAt(2);
            mobileOriginator.Show();

            // 恢复到原始状态
            Console.WriteLine("-------恢复联系人列表------");
            mobileOriginator.RestoreMemento(manager.Memento);
            mobileOriginator.Show();

            Console.WriteLine("Hello World!");
        }