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); }
public override void Send(string message, Colleague colleague) { if (colleague == ColleagueA) { ColleagueB.Notify(message); } else { ColleagueA.Notify(message); } }
public void SendMessage(Colleague caller, string msg) { if (caller == ColleagueA) { ColleagueB.Receive(msg); } else { ColleagueA.Receive(msg); } }
static void Main(string[] args) { ConcreteMediator m = new ConcreteMediator(); ColleagueA a = new ColleagueA(m); ColleagueB b = new ColleagueB(m); m.A = a; m.B = b; a.Send("在干吗?"); b.Send("打游戏"); Console.ReadKey(); }
public static void Main(string[] args) { MediatorA mediator = new MediatorA(); ColleagueA colleagueA = new ColleagueA(mediator); ColleagueB colleagueB = new ColleagueB(mediator); mediator.AddColleague(colleagueA); mediator.AddColleague(colleagueB); colleagueA.Mediate(); colleagueB.Mediate(); }
public void MediatorPattern_Test() { ColleagueA colleagueA = new ColleagueA(); ColleagueB colleagueB = new ColleagueB(); Mediator mediatorA = new MediatorA(colleagueA, colleagueB); colleagueA.SetMediator(mediatorA); colleagueB.SetMediator(mediatorA); var resultA = colleagueA.NotifyColleagueB(); var resultB = colleagueB.NotifyColleagueA(); Assert.Equal("MediatorA ColleagueB Notify", resultA); Assert.Equal("MediatorA ColleagueA Notify", resultB); }
public void MediatorTest() { { var a = new ColleagueA(); var b = new ColleagueB(); var mediator = new ConcreteMediator(a, b); a.SendMessage("你好", mediator); b.SendMessage("我很好,谢谢", mediator); } { var mediator = new NotificateionEventHandler(); var admin = new 中介者模式.消息通知.Person(mediator, "管理员"); var user = new 中介者模式.消息通知.Person(mediator, "用户"); admin.Send("口号?"); user.Send("芝麻开门"); } }
/// <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(); }
public void Execute() { ColleagueA.ToString(); ColleagueB.ToString(); }