Example #1
0
        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);
     }
 }
Example #3
0
 public void SendMessage(Colleague caller, string msg)
 {
     if (caller == ColleagueA)
     {
         ColleagueB.Receive(msg);
     }
     else
     {
         ColleagueA.Receive(msg);
     }
 }
Example #4
0
        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);
        }
Example #7
0
        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();
        }
Example #9
0
 public void Execute()
 {
     ColleagueA.ToString();
     ColleagueB.ToString();
 }