private void Start()
    {
        ConcreteMediator m = new ConcreteMediator();

        ConcreteColleague1 c1 = new ConcreteColleague1(m);
        ConcreteColleague2 c2 = new ConcreteColleague2(m);
        ConcreteColleague  c3 = new ConcreteColleague(m);
        ConcreteColleague  c4 = new ConcreteColleague(m);
        ConcreteColleague  c5 = new ConcreteColleague(m);
        ConcreteColleague  c6 = new ConcreteColleague(m);
        ConcreteColleague  c7 = new ConcreteColleague(m);

        //m.Colleague1 = c1;
        //m.Colleague2 = c2;
        m.AddColleague(c1);
        m.AddColleague(c2);
        m.AddColleague(c3);
        m.AddColleague(c4);
        m.AddColleague(c5);
        m.AddColleague(c6);
        m.AddColleague(c7);

        c1.Send("How are you?");
        c2.Send("Fine, thanks");
    }
Exemplo n.º 2
0
        public static void Intialize()
        {
            // Step1.定义中介者对象
            ConcreteMediator mediator = new ConcreteMediator();

            // Step2.定义同事对象
            Button   addButton       = new Button();
            List     list            = new List();
            ComboBox cb              = new ComboBox();
            TextBox  userNameTextBox = new TextBox();

            addButton.SetMediator(mediator);
            list.SetMediator(mediator);
            cb.SetMediator(mediator);
            userNameTextBox.SetMediator(mediator);

            mediator.addButton       = addButton;
            mediator.list            = list;
            mediator.cb              = cb;
            mediator.userNameTextBox = userNameTextBox;

            // Step3.点击增加按钮
            addButton.Changed();

            Console.WriteLine("---------------------------------------------");

            // Step4.从列表框选择客户
            list.Changed();
        }
Exemplo n.º 3
0
        public void DoubleProviderTestCloudToXml()
        {
            EmptyDirectory(Path.Combine(Environment.CurrentDirectory, "..\\..\\..\\Target Files"));

            Configurator configurator = new Configurator();

            ConcreteMediator <string, string> m = new ConcreteMediator <string, string>();

            CloudReaderProvider ReaderProvider = new CloudReaderProvider(m);

            configurator.ConfigureSourcePath(ReaderProvider, Path.Combine("cloudPath", "\\cloudDirectory"));
            configurator.ConfigureUserName(ReaderProvider, "testUser");
            configurator.ConfigurePassword(ReaderProvider, "testPassword");
            configurator.ConfigureUrl(ReaderProvider, "cloudUrl");

            XmlWriterProvider xmlWriter = new XmlWriterProvider(m);

            configurator.ConfigureDestinationPath(xmlWriter, Path.Combine(Environment.CurrentDirectory, "..\\..\\..\\Target Files\\Document1.xml"));


            DoubleProvider <string, string> doubleProvider = new DoubleProvider <string, string>(ReaderProvider, xmlWriter, m);

            doubleProvider.Process();

            Assert.IsTrue(File.Exists(Path.Combine(Environment.CurrentDirectory, "..\\..\\..\\Target Files\\Document1.xml")));
        }
Exemplo n.º 4
0
        public StatisticsVM() : base(ConcreteMediator.getInstance())
        {
            ConcreteMediator.getInstance().StatisticsVM = this;

            _statistics = new Statistics();
            ScorePlayer = _statistics.GetPlayerStatistics();
        }
Exemplo n.º 5
0
        static void Main16()
        {
            Console.WriteLine("Hello Mediator Pattern!");

            var platform = new ConcreteMediator();
            var a        = new ConcreteColleague("A", platform);
            var b        = new ConcreteColleague("B", platform);
            var c        = new ConcreteColleague("C", platform);
            var d        = new ConcreteColleague("D", platform);
            var e        = new ConcreteColleague("E", platform);

            a.JoinChat();
            b.JoinChat();
            c.JoinChat();
            d.JoinChat();
            e.JoinChat();

            a.SendMessage("Hello world!");
            b.SendMessage("Hello world!");
            c.SendMessage("Hello world!");
            d.SendMessage("Hello world!");
            e.SendMessage("Hello world!");

            a.LeaveChat();
            b.LeaveChat();
            c.LeaveChat();
            d.LeaveChat();
            e.LeaveChat();

            Console.ReadLine();
        }
Exemplo n.º 6
0
        public void WhenSendingMessageToSpecificTypeOfReceiver_ShouldSendMessageToAllFromTypeExceptOriginalSender()
        {
            var mediator       = new ConcreteMediator();
            var colleague1Mock = new Mock <ConcreteColleague1>()
            {
                CallBase = true
            };
            var colleague2Mock = new Mock <ConcreteColleague1>()
            {
                CallBase = true
            };
            var colleague3Mock = new Mock <ConcreteColleague3>()
            {
                CallBase = true
            };

            colleague1Mock.Setup(c => c.Receive(It.IsAny <string>()));
            colleague2Mock.Setup(c => c.Receive(It.IsAny <string>()));
            colleague3Mock.Setup(c => c.Receive(It.IsAny <string>()));

            var colleague1 = colleague1Mock.Object;
            var colleague2 = colleague2Mock.Object;
            var colleague3 = colleague3Mock.Object;

            mediator.Register(colleague1);
            mediator.Register(colleague2);
            mediator.Register(colleague3);

            colleague1.Send <ConcreteColleague1>("Custom message");

            colleague1Mock.Verify(c => c.Receive(It.IsAny <string>()), Times.Never);
            colleague2Mock.Verify(c => c.Receive("Custom message"), Times.Once);
            colleague3Mock.Verify(c => c.Receive(It.IsAny <string>()), Times.Never);
        }
Exemplo n.º 7
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);
        }
Exemplo n.º 8
0
        public void Test()
        {
            var mediator = new ConcreteMediator <string>();

            var producer1 = new ConcreteProducer <string>(mediator);
            var producer2 = new ConcreteProducer <string>(mediator);

            var consumer1 = new ConcreteConsumer <string>();
            var consumer2 = new ConcreteConsumer <string>();
            var consumer3 = new ConcreteConsumer <string>();

            mediator.Register(consumer1);
            mediator.Register(consumer2);
            mediator.Register(consumer3);

            Assert.That(consumer1.Notification, Is.Null);
            Assert.That(consumer2.Notification, Is.Null);
            Assert.That(consumer3.Notification, Is.Null);

            producer1.Publish("producer 1");

            Assert.That(consumer1.Notification, Is.EqualTo("producer 1"));
            Assert.That(consumer2.Notification, Is.EqualTo("producer 1"));
            Assert.That(consumer3.Notification, Is.EqualTo("producer 1"));

            producer2.Publish("producer 2");

            Assert.That(consumer1.Notification, Is.EqualTo("producer 2"));
            Assert.That(consumer2.Notification, Is.EqualTo("producer 2"));
            Assert.That(consumer3.Notification, Is.EqualTo("producer 2"));
        }
Exemplo n.º 9
0
        public void SimpleTest()
        {
            ConcreteMediator mediator = new ConcreteMediator();

            mediator.CreateColleagues();
            mediator.ColleagueA.Action();
            mediator.ColleagueB.Action();
        }
        private static void StructuralExample()
        {
            var mediator = new ConcreteMediator();
            var c1       = mediator.CreateColleague <ConcreteColleague>();
            var c2       = mediator.CreateColleague <SecondConreteColleage>();

            c1.Send("hello from colleague 1");
            c2.Send("hello from colleague 2");
        }
Exemplo n.º 11
0
        /// <summary>
        /// 中介者模式
        /// </summary>
        public static void MediatorPatternMethods()
        {
            WoMan     woMan    = new WoMan("小花");
            Man       man      = new Man("小明");
            IMediator mediator = new ConcreteMediator(woMan, man);

            woMan.TalkLove("我想找个男朋友", mediator);
            man.TalkLove("我想找个女朋友", mediator);
        }
Exemplo n.º 12
0
        public void Structural()
        {
            var mediator = new ConcreteMediator();
            var c1       = mediator.CreateColleague <Colleague1>();
            var c2       = mediator.CreateColleague <Colleague2>();

            c1.Send("Hello, World! (from c1)");
            c2.Send("Hello, World! (from c2)");
        }
Exemplo n.º 13
0
        static void Main(string[] args)
        {
            var mediator = new ConcreteMediator();

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

            c1.Send("Hello (from c1)");
            c2.Send("Hello (from c2)");
        }
Exemplo n.º 14
0
        public void JsonReaderTest()
        {
            Configurator configurator = new Configurator();

            ConcreteMediator <string, string> m   = new ConcreteMediator <string, string>();
            JsonReaderProvider diskReaderProvider = new JsonReaderProvider(m);

            configurator.ConfigureSourcePath(diskReaderProvider, Path.Combine(Environment.CurrentDirectory, "..\\..\\..\\Source Files\\Document1.json"));
            diskReaderProvider.ProcessData(null);
        }
Exemplo n.º 15
0
        public UseCase()
        {
            ConcreteMediator     mediator   = new ConcreteMediator();
            ConcreteColleagueOne colleague1 = new ConcreteColleagueOne(mediator);
            ConcreteColleagueTwo colleague2 = new ConcreteColleagueTwo(mediator);

            mediator.Colleague1 = colleague1;
            mediator.Colleague2 = colleague2;
            colleague2.Send("IMPORTANT MESSAGE");
        }
Exemplo n.º 16
0
        /*
         *
         * A intenção do padrão Mediator é definir um objeto que encapsula como um conjunto de objetos interagem. Mediator promove o baixo acoplamento por manter objetos
         * sem se referir um ao outro de forma explícita, e que lhe permite variar sua iteração independentemente.e.
         *
         * Participantes:
         * Mediator - define uma interface para comunicação com objetos Colleague;
         * ConcreteMediator - implementa o comportamento cooperativo;
         * Colleague classes - cada classe Colleague conhece seu objeto Mediator de outra forma; cada Colleague se comunica com seu Mediator sempre que, de outra forma,
         * teria que se comunicar com outro colega.
         */

        public void Mediator()
        {
            ConcreteMediator mediator = new ConcreteMediator();
            Suporte          suporte  = new Suporte(mediator);
            Usuario          usuario  = new Usuario(mediator);

            mediator.Suporte = suporte;
            mediator.Usuario = usuario;
            Response.Write(usuario.Send("Meu Windows não está entrando!!!"));
            Response.Write(suporte.Send("<br>Formate a máquina..."));
        }
Exemplo n.º 17
0
        //

        public AppViewModel() : base(ConcreteMediator.getInstance())
        {
            AuthClient.client = new ServiceReference1.AuthorizationClient(new System.ServiceModel.InstanceContext(this));
            AuthClient.client.ServerStatus();

            ConcreteMediator.getInstance().AppViewModel = this;

            ClientPlayer = new ObservableCollection <ClientPlayer>();
            EnemyPlayers = new ObservableCollection <EnemyPlayer>();
            FoodPoints   = new ObservableCollection <FoodPoint>();
        }
Exemplo n.º 18
0
        static void Main(string[] args)
        {
            Imediator mediator = new ConcreteMediator();
            IUser     user1    = new ConcreteUser(mediator);
            IUser     user2    = new ConcreteUser(mediator);

            mediator.AddUser(user1);
            mediator.AddUser(user2);
            user1.SendMessage("This is user number 1!");
            user2.SendMessage("This is user number 2!");
        }
Exemplo n.º 19
0
        public MediatorTest()
        {
            _mediator = new ConcreteMediator();

            // Set the meditator for communication between the two colleagues
            _colleague1 = new ConcreteColleague1(_mediator);
            _colleague2 = new ConcreteColleague2(_mediator);

            _mediator.Colleague1 = (ConcreteColleague1)_colleague1;
            _mediator.Colleague2 = (ConcreteColleague2)_colleague2;
        }
Exemplo n.º 20
0
        //Mediator
        public void Mediator()
        {
            AbstractMediator mediator = new ConcreteMediator();
            Colleague        suporte  = new Suporte(mediator);
            Colleague        usuario  = new UsuarioCliente(mediator);

            mediator.Attach(suporte);
            mediator.Attach(usuario);
            usuario.Send("Pifou");
            suporte.Send("Arruma");
        }
Exemplo n.º 21
0
        public void TestMethod1()
        {
            var mediator   = new ConcreteMediator();
            var colleague1 = new ConcreteColleague(mediator);
            var colleague2 = new ConcreteColleague(mediator);

            mediator.AddColleague(colleague1);
            mediator.AddColleague(colleague2);

            colleague1.Send("form C1");
            colleague2.Send("from C2");
        }
Exemplo n.º 22
0
    void Start()
    {
        ConcreteMediator = new ConcreteMediator(component1, component2);

        // Debug.Log("Client triggets operation A.");
        component1.DoA();

        Debug.Log("__");

        //  Debug.Log("Client triggers operation D.");
        component2.DoD();
    }
Exemplo n.º 23
0
        public void XmlReaderProvider()
        {
            Configurator configurator = new Configurator();

            ConcreteMediator <string, string> m = new ConcreteMediator <string, string>();

            XmlReaderProvider diskReaderProvider = new XmlReaderProvider(m);

            configurator.ConfigureSourcePath(diskReaderProvider, Path.Combine(Environment.CurrentDirectory, "..\\..\\..\\Source Files\\Document1.xml"));

            diskReaderProvider.ProcessData(string.Empty);
        }
Exemplo n.º 24
0
    static void Main()
    {
        ConcreteMediator   m  = new ConcreteMediator();
        ConcreteColleague1 c1 = new ConcreteColleague1(m);
        ConcreteColleague2 c2 = new ConcreteColleague2(m);

        m.Colleague1 = c1;
        m.Colleague2 = c2;
        c1.Send("How are you?");
        c2.Send("I'm good.");
        Console.ReadKey();
    }
Exemplo n.º 25
0
        static void Main(string[] args)
        {
            var mediator = new ConcreteMediator();
            var user1    = new User1(mediator);
            var user2    = new User2(mediator);

            mediator.User1 = user1;
            mediator.User2 = user2;

            user1.SendMessage("Hello World!");
            user2.SendMessage("Why hello there!");
        }
Exemplo n.º 26
0
        public void Show()
        {
            var cm = new ConcreteMediator();
            var c1 = new ConcreteColleagueA(cm);
            var c2 = new ConcreteColleagueB(cm);

            cm.concreteColleagueA = c1;
            cm.concreteColleagueB = c2;

            c1.Send("`send` of ConcreteColleagueA is being called!");
            c2.Send("`send` of ConcreteColleagueB is being called!");
        }
Exemplo n.º 27
0
        static void Main(string[] args)
        {
            Widget1          widget1  = new Widget1();
            Widget2          widget2  = new Widget2();
            ConcreteMediator mediator = new ConcreteMediator(widget1, widget2);

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

            Console.WriteLine("Client triggers operation D.");
            widget2.DoD();
        }
Exemplo n.º 28
0
        static void Main(string[] args)
        {
            ConcreteMediator   m  = new ConcreteMediator();
            ConcreteColleague1 c1 = new ConcreteColleague1(m);
            ConcreteColleague2 c2 = new ConcreteColleague2(m);

            m.Colleague1 = c1;
            m.Colleague2 = c2;
            c1.Send("吃过饭了吗?");
            c2.Send("没有呢,你打算请客?");
            Console.ReadKey();
        }
Exemplo n.º 29
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)}!");
        }
Exemplo n.º 30
0
        public void Test_Demo()
        {
            ConcreteComponentA componentA = new ConcreteComponentA();
            ConcreteComponentB componentB = new ConcreteComponentB();

            IMediator mediator = new ConcreteMediator(componentA, componentB);

            componentA.ExecutingA();
            componentA.ExecutingB();
            componentB.ExecutingA();
            componentB.ExecutingB();
        }
Exemplo n.º 31
0
        /// <summary>
        /// 
        /// </summary>
        static void Demo()
        {
            ConcreteMediator m = new ConcreteMediator();

            ConcreteColleague1 c1 = new ConcreteColleague1(m);
            ConcreteColleague2 c2 = new ConcreteColleague2(m);

            m.Colleague1 = c1;
            m.Colleague2 = c2;

            c1.Send("How are you?");
            c2.Send("Fine, thanks");

            // Wait for user
            Console.ReadKey();
        }
Exemplo n.º 32
0
        static void Main(string[] args)
        {
            IColleague<string> colleagueA = new ConcreteColleague<string>("Colleague A");
            IColleague<string> colleagueB = new ConcreteColleague<string>("Colleague B");
            IColleague<string> colleagueC = new ConcreteColleague<string>("Colleague C");

            IMediator<string> mediator = new ConcreteMediator<string>();

            mediator.Register(colleagueA);
            mediator.Register(colleagueB);
            mediator.Register(colleagueC);

            colleagueC.SendMessage(mediator, "message from " + colleagueC.GetName() + "!");

            Console.ReadKey();
        }
Exemplo n.º 33
0
	// 
	void UnitTest () 
	{
		// 產生仲介者
		ConcreteMediator pMediator = new ConcreteMediator();

		// 產生兩個Colleague
		ConcreateColleague1 pColleague1 = new ConcreateColleague1(pMediator);
		ConcreateColleague2 pColleague2 = new ConcreateColleague2(pMediator);

		// 設定給仲介者
		pMediator.SetColleageu1( pColleague1 );
		pMediator.SetColleageu2( pColleague2 );

		// 執行
		pColleague1.Action();
		pColleague2.Action();	
	}
Exemplo n.º 34
0
        public static void Test()
        {
            // Create chatroom participants
            AbstractColleague colleague1 = new ConcreteColleague() { ID = "1" };
            AbstractColleague colleague2 = new ConcreteColleague() { ID = "2" };
            AbstractColleague colleague3 = new ConcreteColleague() { ID = "3" };
            AbstractColleague colleague4 = new ConcreteColleague() { ID = "4" };
            AbstractColleague colleague5 = new ConcreteColleague() { ID = "5" };

            var mediator = new ConcreteMediator();
            mediator.Register(colleague1);
            mediator.Register(colleague2);
            mediator.Register(colleague3);
            mediator.Register(colleague4);
            mediator.Register(colleague5);

            colleague1.Send("2", "from 1 to 2");
            colleague3.Send("4", "from 3 to 4");
            colleague5.Send("1", "from 5 to 1");
        }
Exemplo n.º 35
0
    // Entry point into console application
    static void Main()
    {
        mediator = new ConcreteMediator();

        c1 = new ConcreteColleague1(mediator);
        c2 = new ConcreteColleague2(mediator);

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

        c1.Send("How are you?");
        c2.Send("Fine, thanks");

        // Wait for user
        Console.ReadKey();
    }
Exemplo n.º 36
0
  public static void Main(string[] args)
  {
    ConcreteMediator m = new ConcreteMediator();

    ConcreteColleague1 c1 = new ConcreteColleague1( m );
    ConcreteColleague2 c2 = new ConcreteColleague2( m );

    m.Colleague1 = c1;
    m.Colleague2 = c2;

    c1.Send( "How are you?" );
    c2.Send( "Fine, thanks" );

    Console.Read();
  }