Кіріспе
Бағдарламалық жасақтама архитектурасының жобалау үлгісі
Бағдарламалық инженерияда медиатор үлгісі объектілер жиынының қалай өзара әрекеттесетінін қамтитын объектіні анықтайды. Бұл үлгі бағдарламаның жұмыс ілу әдісін өзгерте алатындықтан, мінез-құлық үлгісі деп саналады. Объектіге бағытталған бағдарламалауда бағдарламалар көбінесе көптеген сыныптардан тұрады. Бизнес-логика және есептеулер осы сыныптар арасында бөліседі. Дегенмен, бағдарламаға сыныптар қосылған сайын, әсіресе техникалық қолдау көрсету және/немесе қайта құру кезінде, осы сыныптар арасындағы байланыс мәселесі күрделене түседі. Бұл бағдарламаны оқу мен сақтауды қиындатады. Сонымен қатар, бағдарламаны өзгерту қиынға соғады, себебі кез келген өзгеріс басқа бірнеше сыныптардағы кодқа әсер етуі мүмкін. Медиатор үлгісімен объектілер арасындағы байланыс медиатор объектісінің ішінде жабылады. Объектілер енді бір-бірімен тікелей байланыспайды, олар медиатор арқылы байланысады. Бұл байланысқан объектілер арасындағы тәуелділікті азайтады, соның салдарынан байланыстың күшін азайтады.
In software engineering, the mediator pattern defines an object that encapsulates how a set of objects interact. This pattern is considered to be a behavioral pattern due to the way it can alter the program's running behavior. In object oriented programming, programs often consist of many classes. Business logic and computation are distributed among these classes. However, as more classes are added to a program, especially during maintenance and/or refactoring, the problem of communication between these classes may become more complex. This makes the program harder to read and maintain. Furthermore, it can become difficult to change the program, since any change may affect code in several other classes. With the mediator pattern, communication between objects is encapsulated within a mediator object. Objects no longer communicate directly with each other, but instead communicate through the mediator. This reduces the dependencies between communicating objects, thereby reducing coupling.
Шолу
Медиаторлық жобалау үлгісі – жиырма үш жақсы танымал жобалау үлгілерінің бірі болып табылады, ол қайталанатын жобалау мәселелерін қалай шешуге болатынын сипаттайды, соның арқасында икемді және қайта қолданылатын объектіге бағытталған бағдарламалық құралды жасауға болады, яғни, енгізілуі, өзгертілуі, тестіленуі және қайта қолданылуы оңай болатын объектілерді.
Медиаторлық жобалау үлгісі шеше алатын мәселелер
Бір-бірімен өзара әрекеттесетін объектілердің тығыз байланысынан аулақ болу керек. Объектілер жиынтығының өзара әрекеттесуін тәуелсіз түрде өзгертуге мүмкіндік болуы тиіс. Объектілердің жиынтығын бір-біріне тікелей қол жеткізу және жаңарту арқылы анықтау икемсіз, себебі бұл объектілерді бір-бірімен тығыз байланыстырады және объектілерді өзгертусіз (өзгерместен) өзара әрекеттесуді өзгертуге мүмкіндік бермейді. Бұл объектілердің қайта қолданылуына кедергі келтіреді және оларды сынауды қиындатады. Тығыз байланысқан объектілерді іске асыру, өзгерту, сынау және қайта пайдалану қиын, өйткені олар көптеген басқа объектілерге сілтеме жасайды және оларды біледі.
Медиаторлық жобалау үлгісімен сипатталған шешімдер
Объектілер жиынтығының өзара әрекеттесуін қамтитын жеке (орташалаушы) объектіні анықтаңыз. Объектілер бір-бірімен тікелей әрекеттесудің орнына, өзара әрекеттесуін орташалаушы объектіге жүктейді. Объектілер орташалаушы объекті арқылы, өзара әрекеттесуді басқарып, үйлестіре отырып, жанама түрде өзара әрекеттеседі. Бұл объектілердің байланысын әлсіретеді. Олар тек өздерінің орташалаушы объектісін біледі және бір-бірі туралы тікелей білімі жоқ. UML класы және реттілік диаграммасы төменде келтірілген.
Анықтама
Медиаторлық үлгінің мәні – "бірнеше нысанның өзара әрекеттесуін қамтитын нысанды анықтау". Ол нысандардың тікелей бір-біріне сілтеме жасауын болдырмай, байланыстың әлсіз болуын қамтамасыз етеді және олардың өзара әрекеттесуін тәуелсіз түрде өзгертуге мүмкіндік береді. Клиенттік кластар медиатор арқылы басқа клиенттерге хабарлама жіберуге және медиатор класындағы оқиға арқылы басқа клиенттерден хабарлама алуға болады.