protected override void RealTestOutPut() { var mediator = new ConcreteMediator(); var a = new ColleagueA(mediator); var b = new ColleagueB(mediator); var c = new ColleagueC(mediator); var list = new List <AbstractColleague>() { a, b, c }; println("Change a to 100 and notify colleagues"); a.Data = 100; a.Changed(); Print(list); println("Change b to 100 and notify colleagues"); b.Data = 100; b.Changed(); Print(list); println("Change c to 100 and notify colleagues"); c.Data = 100; c.Changed(); Print(list); }
/// <summary> /// 中介者 /// </summary> static void Mediator() { Console.WriteLine($"中介者模式{Environment.NewLine}-------------------------------------------"); Mediator.Mediator mediator = new Mediator.Mediator(); //创建中介者 ColleagueA colleagueA = new ColleagueA(mediator); //创建同事A ColleagueB colleagueB = new ColleagueB(mediator); //创建同事B ColleagueC colleagueC = new ColleagueC(); //创建同事C ColleagueD colleagueD = new ColleagueD(mediator); //创建同事D mediator.ColleagueAObj = colleagueA; //关联同事A mediator.ColleagueBObj = colleagueB; //关联同事B mediator.ColleagueCObj = colleagueC; //关联同事C colleagueA.OperationB(); colleagueB.OperationA(); colleagueD.Operation(); Console.ReadKey(); }