public ConcreteMediator(ColleagueOne colleagueOne, ColleagueTwo colleagueTwo)
 {
     this.ColleagueOne = colleagueOne;
     this.ColleagueOne.SetMediator(this);
     this.ColleagueTwo = colleagueTwo;
     this.ColleagueTwo.SetMediator(this);
 }
示例#2
0
        static void Main(string[] args)
        {
            // The client code.
            ColleagueOne component1 = new ColleagueOne();
            ColleagueTwo component2 = new ColleagueTwo();

            new ConcreteMediator(component1, component2);

            Console.WriteLine("Client triggers operation A.");
            component1.DoA();

            Console.WriteLine();

            Console.WriteLine("Client triggers operation D.");
            component2.DoD();
        }
示例#3
0
        //LD_MEDIATOR_000
        public static void RunMediatorDesignPattern()
        {
            Mediator lucaMediator = new Mediator();

            ColleagueOne c1 = new ColleagueOne(lucaMediator); //LD creation of concrete instance of "Coleague", need to pass "Mediator" instance

            lucaMediator.c1 = c1;                             //LD set "c1" in concrete "Mediator" instance

            ColleagueTwo c2 = new ColleagueTwo(lucaMediator);

            lucaMediator.c2 = c2;

            ColleagueThree c3 = new ColleagueThree(lucaMediator);

            lucaMediator.c3 = c3;

            //LD test of "Mediator" logic
            c1.Send("msg001");
            c2.Send("msg002");
        }