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()); }
public void unsubscribe(DesignPatterns.ObserverPattern.Observer.ISubscriber s) { Subscribers.Remove(s); }
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; } }
public void subscribe(DesignPatterns.ObserverPattern.Observer.ISubscriber s) { Subscribers.Add(s); }