コード例 #1
0
ファイル: Program.cs プロジェクト: zhivkosd/GoFDesignPatterns
        static void Main(string[] args)
        {
            IColleague colleague1 = new Colleague1();
            IColleague colleague2 = new Colleague2();
            IMediator  mediator   = new ConcreteMediator1(colleague1, colleague2);

            mediator.ChangeState("new input");
        }
コード例 #2
0
        //  public ConcreteColleagueB Colleague2 { get; set; }

        public void SendMessage(Colleague caller, string msg)
        {
            if (caller == Colleague1)
            {
                Colleague2.Receive(msg);
            }
            else
            {
                Colleague1.Receive(msg);
            }
        }
コード例 #3
0
        static void MediatorExample()
        {
            var mediator   = new ConcreteMediator();
            var colleague1 = new Colleague1(mediator);
            var colleague2 = new Colleague2(mediator);

            mediator.Colleague1 = colleague1;
            mediator.Colleague2 = colleague2;

            colleague1.Send($"Hello {nameof(Colleague2)}!");
            colleague2.Send($"Hello {nameof(Colleague1)}!");
        }
コード例 #4
0
    private void Start()
    {
        ColleagueMediator cm = new ColleagueMediator();

        Colleague1 c1 = new Colleague1(cm);
        Colleague2 c2 = new Colleague2(cm);

        cm.SetColleague1(c1);
        cm.SetColleague2(c2);

        c1.C1Action();
        c2.C2Action();
    }
コード例 #5
0
        /// <summary>
        /// The main.
        /// </summary>
        /// <param name="args">
        /// The args.
        /// </param>
        public static void Main(string[] args)
        {
            var mediator = new Mediator();

            /* var colleague1 = new Colleague1();
             * var colleague2 = new Colleague2();
             *
             * mediator.Register(colleague1);
             * mediator.Register(colleague2); */

            Colleague1 colleague1 = mediator.CreateColleague <Colleague1>();
            Colleague2 colleague2 = mediator.CreateColleague <Colleague2>();

            colleague1.Send($"Hello Word from colleague 1");
            colleague2.Send($"Hello Word from colleague 2");
        }
コード例 #6
0
        static void Main(string[] args)
        {
            var mediator = new ConcreteMediator();

            var c1 = new Colleague1();
            var c2 = new Colleague2();

            //mediator.Colleague1 = c1;
            //mediator.Colleague2 = c2;

            mediator.Register(c1);
            mediator.Register(c2);

            c1.Send("Hello from c1");
            c2.Send("Hola from c2");
            //mediator.Send("Hola", c2);
        }
コード例 #7
0
ファイル: Application.cs プロジェクト: daviur/DesignPatterns
        public void Run()
        {
            var mediator = new ConcreteMediator();
            var c1       = new Colleague1(mediator);
            var c2       = new Colleague2(mediator);

            mediator.Colleague1 = c1;
            mediator.Colleague2 = c2;

            //mediator.Register(c1);
            //mediator.Register(c2);

            //var c1 = mediator.CreateCollegue<Colleague1>();
            //var c2 = mediator.CreateCollegue<Colleague2>();

            c1.Send("Hello c2!");
            c2.Send("Hello c1!");
        }
コード例 #8
0
        private static void Main(string[] args)
        {
            IHandler         handler   = new Handler();
            IMediator        mediator  = new Mediator();
            AbstractListener listener1 = new Colleague1();
            AbstractListener listener2 = new Colleague2();
            AbstractListener listener3 = new Colleague3();

            try
            {
                mediator.AddListener(listener1, "OnEvent");
                mediator.AddListener(listener2, "OnEvent");
                mediator.AddListener(listener3, "OnEvent");

                listener1.ToGreet(listener2.GetType().Name, mediator, handler);
                listener2.ToGreet(listener3.GetType().Name, mediator, handler);
                listener3.ToGreet(listener1.GetType().Name, mediator, handler);
            }
            catch (Exception e)
            {
                Console.WriteLine("Caught exception: {0} \n", e.Message);
            }
        }
コード例 #9
0
 public void SetColleague2(Colleague2 c)
 {
     c2 = c;
 }