Page 71 - 4190
P. 71
лювання стосунків між користувачами і групами операційної систе-
ми. Група може мати 0 або більше користувачів, а користувач може
бути членом 0 або більше груп. Патерн Mediator передбачає гнучкий
спосіб управління користувачами і групами.
UML-діаграма класів патерну Mediator зображена на рисунку 7.4.
Рисунок 7.4 - UML-діаграма класів патерну Mediator
Патерн Mediator визначає об'єкт, що управляє набором взаємоді-
ючих об'єктів. Слабка зв'язаність досягається завдяки тому, що за-
мість безпосередньої взаємодії один з одним колеги спілкуються че-
рез об'єкт-посередник. Вежа управління польотами в аеропорту добре
демонструє цей патерн. Пілоти літаків, які злітають або йдуть на по-
садку, у районі аеропорту спілкуються з вежею замість безпосеред-
нього спілкування один з одним. Вежа визначає, хто і в якому поряд-
ку сідатиме або злітатиме. Важливо відмітити, що вежа контролює
літаки тільки в районі аеродрому, а не упродовж усього польоту.
Патерн Mediator має такі особливості:
1. Патерни Chain of Responsibility, Command і Observer показу-
ють, як можна розділити відправників і одержувачів запитів з ураху-
ванням їх особливостей. Chain of Responsibility передає запит відпра-
вника по ланцюжку потенційних одержувачів. Command номінально
визначає зв'язок - "відправник-одержувач" за допомогою підкласу. У
Mediator відправник і одержувач посилаються один на одного, через
об'єкт-посередник. У патерні Observer зв'язок між відправником і
одержувачем слабкіший, при цьому число одержувачів може конфі-
гуруватися під час виконання.
2. Mediator і Observer є конкуруючими патернами. Якщо Observer
розподіляє взаємодію за допомогою об'єктів "спостерігач" і "суб'єкт",
71