|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Результати використання1. Абстрактна зв’язаність суб’єкта і спостерігача. Якщо два об’єкти можуть взаємодіяти, не володіючи практично ніякою інформацією один про одного, то такі об’єкти називають слабозв’язаними. В архітектурі паттерна Спостерігач між суб’єктами і спостерігачами існує слабкий зв’язок. Тому що: - єдине, що знає суб’єкт про спостерігача – те, що той реалізує деякий інтерфейс (Observer). Йому не потрібно знати ні конкретний клас спостерігача, ні його функціональність, узагалі нічого; - нові спостерігачі можуть додаватися в будь-який момент. Оскільки суб’єкт залежить тільки від списку об’єктів, що реалізують інтерфейс Observer, ви можете додавати нових спостерігачів за своїм розсудом. Будь-якого спостерігача під час виконання можна замінити іншим спостерігачем або видалити його зі списку – суб’єкт цього не помітить; - додавання нових типів спостерігачів не вимагає модифікації суб’єкта. Припустимо, в нас з’явився новий клас, що повинний стати спостерігачем. Вносити зміни в суб’єкт не буде потрібно – досить реалізувати інтерфейс Observer у новому класі і зареєструвати його в якості спостерігача. Суб’єкт буде доставляти оповіщення будь-якому об’єкту, що реалізує інтерфейс Observer; - суб’єкти і спостерігачі можуть повторно використовуватися незалежно один від одного. Між ними не існує сильних зв’язків, що дозволяє повторно використовувати їх для інших цілей; - зміни в суб’єкті або спостерігачі не впливають на іншу сторону. Завдяки слабким зв’язкам можна вносити будь-як зміни на кожній із двох сторін – за умови, що об’єкт реалізує необхідний інтерфейс суб’єкта або спостерігача; На базі слабозв’язаних архітектур будуються гнучкі ОО-системи, які добре адаптуються до змін завдяки мінімальним залежностям між об’єктами. 2. Підтримка широкомовних комунікацій. На відміну від звичайного запиту для повідомлення, що посилається суб’єктом, не потрібно задавати визначеного одержувача. Повідомлення автоматично надходить всім об’єктам, що підписалися на нього. Суб’єкту не потрібна інформація про кількість таких об’єктів, від нього потрібно усього лише повідомити своїх спостерігачів. Тому можна в будь-який час додавати і видаляти спостерігачів. Спостерігач сам вирішує, обробити отримане повідомлення або ігнорувати його. До негативних аспектів відносяться несподівані відновлення. Оскільки спостерігачі не мають інформацію один про одного, їм невідомо і про те, у що обходиться зміна суб’єкта. Невелика, на перший погляд, операція над суб’єктом може викликати цілий ряд відновлень спостерігачів і залежних від них об’єктів. Більш того, нечітко визначені або погано підтримувані критерії залежності можуть стати причиною непередбачених відновлень, відстежити які дуже складно. Ця проблема збільшується ще і тим, що простий протокол відновлення не містить ніяких відомостей про те, що саме змінилося в суб’єкті. Без додаткового протоколу, що допомагає з’ясувати характер змін, спостерігачі будуть змушені проробити складну роботу для непрямого одержання такої інформації.
Паттерн Посередник (Mediator) Призначення. Паттерн Посередник – паттерн поведінки, що визначає об’єкт, який інкапсулює спосіб взаємодії безлічі об’єктів. Посередник забезпечує слабку зв’язаність системи, позбавляючи об’єкти від необхідності явно посилатися один на одного [27]. Частота використання Мотивація застосування. Паттерн Mediator визначає об’єкт, який інкапсулює взаємодію безлічі об’єктів. Mediator робить систему слабко пов’язаною, позбавляючи об’єкти від необхідності посилатися один на одного, що дозволяє змінювати взаємодію між ними незалежно. Паттерн Mediator вводить посередника для розділення безлічі взаємодіючих об’єктів. Замінює взаємодію «всі зі всіма» взаємодією «один зі всіма». Використовуйте паттерн Посередник, коли - маються об’єкти, зв’язки між якими складні і чітко визначені. При цьому взаємозалежності не структуровані і важкі для розуміння; - не можна повторно використовувати об’єкт, оскільки він обмінюється інформацією з багатьма іншими об’єктами; - поведінка, розподілена між декількома класами, повинна піддаватися настроюванню без породження безлічі підкласів. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |