dotSITE
Шаблоны проектирования Work in Murano Software. Вопросы/Ответы
новости материалы решения форумы группы настройки/о проекте

Mediator

Паттерн mediator обеспечивает создание "посредника" во взаимодействии объектов, тем самым обеспечивая слабое связывание.

        namespace Mediator_DesignPattern
        {
            using System;

            class Mediator 
            {
                private DataProviderColleague dataProvider;
                private DataConsumerColleague dataConsumer;
                public void IntroduceColleagues(DataProviderColleague c1, DataConsumerColleague c2)
                {
                    dataProvider = c1;
                    dataConsumer = c2;          
                }
                
                public void DataChanged()
                {
                    int i = dataProvider.MyData;
                    dataConsumer.NewValue(i);
                }
            }

            class DataConsumerColleague 
            {
                public void NewValue(int i)
                {
                    Console.WriteLine("New value {0}", i);
                }
            }

            class DataProviderColleague
            {
                private Mediator mediator;
                private int iMyData=0;
                public int MyData 
                {
                    get 
                    {
                        return iMyData;
                    }
                    set 
                    {
                        iMyData = value;
                    }
                }
                public DataProviderColleague(Mediator m)
                {
                    mediator = m;
                }

                public void ChangeData()
                {
                    iMyData = 403;

                    if (mediator != null)
                        mediator.DataChanged(); 
                }       
            }

            public class Client
            {
                public static int Main(string[] args)
                {            
                    Mediator m = new Mediator();
                    DataProviderColleague c1 = new DataProviderColleague(m);
                    DataConsumerColleague c2 = new DataConsumerColleague();
                    m.IntroduceColleagues(c1,c2);

                    c1.ChangeData();

                    return 0;
                }
            }
        }
        

Back
Контакт Реклама на сайте Спонсорам Веб мастерам

Лицензионное соглашение - © 2000-2010 dotSITE
Хостинг .NET предоставлен PARKING.RU
Поддержку сайта осуществляет Murano Software Inc., Offshore software development