Exemplo n.º 1
0
 private static void PrintUsers(DesignPatterns.IteratorPattern.Iterator.IIterator Iterate)
 {
     Iterate.First();
     Console.WriteLine(Iterate.CurrentItem());
     while (!Iterate.IsDone())
     {
         Console.WriteLine(Iterate.Next());
     }
     Iterate.First();
     Console.WriteLine(Iterate.CurrentItem());
 }
Exemplo n.º 2
0
 public void unsubscribe(DesignPatterns.ObserverPattern.Observer.ISubscriber s)
 {
     Subscribers.Remove(s);
 }
Exemplo n.º 3
0
        private static void Main()
        {
            const DesignPatterns designPatterns = DesignPatterns.装饰模式;

            switch (designPatterns)
            {
            case DesignPatterns.单例模式:
                Singleton singleton = Singleton.GetInstance();
                Console.WriteLine(singleton.Say());
                break;

            case DesignPatterns.工厂模式:
                //简单工厂
                BookFactory bookFactory  = new BookFactory();
                IBook       chineseBook1 = bookFactory.CreateBook("语文");
                IBook       mathBook1    = bookFactory.CreateBook("数学");
                chineseBook1.Info();
                mathBook1.Info();
                //工厂方法
                ChineseBookFactory chineseBookFactory = new ChineseBookFactory();
                MathBookFactory    mathBookFactory    = new MathBookFactory();
                IBook chineseBook2 = chineseBookFactory.CreateBook();
                IBook mathBook2    = mathBookFactory.CreateBook();
                chineseBook2.Info();
                mathBook2.Info();
                //抽象工厂
                FirstGradeBookFactory firstGradeBookFactory = new FirstGradeBookFactory();
                SecondGradeFactory    secondGradeFactory    = new SecondGradeFactory();
                IBook chineseBook3 = firstGradeBookFactory.CreateChineseBook();
                IBook mathBook3    = firstGradeBookFactory.CreateMathBook();
                chineseBook3.Info();
                mathBook3.Info();
                IBook chineseBook4 = secondGradeFactory.CreateChineseBook();
                IBook mathBook4    = secondGradeFactory.CreateMathBook();
                chineseBook4.Info();
                mathBook4.Info();
                break;

            case DesignPatterns.装饰模式:
                Zhangsan     zhangsan     = new Zhangsan();
                ZhangsanSayA zhangsanSayA = new ZhangsanSayA();
                ZhangsanSayB zhangsanSayB = new ZhangsanSayB();
                zhangsanSayA.Tell(zhangsan);
                zhangsanSayB.Tell(zhangsanSayA);
                zhangsanSayB.Say();
                break;

            case DesignPatterns.外观模式:
                Lisi lisi = new Lisi();
                lisi.OneDay();
                break;

            case DesignPatterns.代理模式:
                MathProxy proxy = new MathProxy();
                Console.WriteLine("8 + 2 = " + proxy.Add(8, 2));
                Console.WriteLine("8 - 2 = " + proxy.Sub(8, 2));
                Console.WriteLine("8 * 2 = " + proxy.Mul(8, 2));
                Console.WriteLine("8 / 2 = " + proxy.Div(8, 2));
                break;

            case DesignPatterns.观察者模式:
                //被观察者
                Hero hero = new Hero();
                //添加观察者
                hero.AttachObserver(new Monster());
                hero.AttachObserver(new Trap());
                hero.AttachObserver(new Treasure());
                //通知观察者
                hero.Move();
                break;
            }
        }
Exemplo n.º 4
0
 public void subscribe(DesignPatterns.ObserverPattern.Observer.ISubscriber s)
 {
     Subscribers.Add(s);
 }