static void Main(string[] args) { Mediator m1 = new ConcreteMediatorA("班委会"); Colleague ca1 = new ConcreteColleagueA("张三"); Colleague ca2 = new ConcreteColleagueA("李四"); Colleague ca3 = new ConcreteColleagueA("赵五"); Colleague cb1 = new ConcreteColleagueB("王六"); Colleague cb2 = new ConcreteColleagueB("李斯"); Colleague cb3 = new ConcreteColleagueB("王翦"); m1.Register(ca1); m1.Register(ca2); m1.Register(ca3); m1.Register(cb1); m1.Register(cb2); m1.Register(cb3); //c1.SetMediator(m1); //c2.SetMediator(m1); ca1.SendMsgInterface("大家好,我是张三,幸会。。。"); Console.WriteLine("------------"); cb3.SendMsgInterface("你好,我叫王翦,是个军事战略家,谁不服就打谁。。。"); Console.ReadLine(); }
public Mediator(ConcreteColleagueA colleagueA, ConcreteColleagueB colleagueB) { this._colleagueA = colleagueA; this._colleagueA.AddObserver(this.OnConcreteColleagueAChanged); this._colleagueB = colleagueB; this._colleagueB.AddObserver(this.OnConcreteColleagueBChanged); }
static void MediatorPattern() { Console.WriteLine("\n\nMediator Pattern"); var colleagueA = new ConcreteColleagueA(); var colleagueB = new ConcreteColleagueB(); var mediator = new Mediator(colleagueA, colleagueB); colleagueA.SetContent("Fizz"); }
public void Show() { var cm = new ConcreteMediator(); var c1 = new ConcreteColleagueA(cm); var c2 = new ConcreteColleagueB(cm); cm.concreteColleagueA = c1; cm.concreteColleagueB = c2; c1.Send("`send` of ConcreteColleagueA is being called!"); c2.Send("`send` of ConcreteColleagueB is being called!"); }
public void MediatorPatternCodeTest() { ConcreteMediator mediator = new ConcreteMediator(); ConcreteColleagueA colleagueA = new ConcreteColleagueA(1, mediator); ConcreteColleagueB colleagueB = new ConcreteColleagueB(2, mediator); mediator.AddColleague(colleagueA); mediator.AddColleague(colleagueB); colleagueA.Send("你好", colleagueB); colleagueB.Send("hi", colleagueA); }
static void Main(string[] args) { ConcreteMediator m = new ConcreteMediator(); ConcreteColleagueA c1 = new ConcreteColleagueA(m); ConcreteColleagueB c2 = new ConcreteColleagueB(m); m.ColleagueA = c1; m.ColleagueB = c2; c1.SendMessage("吃饭了吗?"); c2.SendMessage("刚刚吃了,你呢?"); Console.Read(); }
public void OnConcreteColleagueAChanged(ConcreteColleagueA instance) { Console.WriteLine("Notification receveid from ConcreteColleagueB, value " + instance.GetContent()); Console.WriteLine("Changing ConcreteColleagueB as side effect"); this._colleagueB.SetContent(instance.GetContent() + "Buzz"); }