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
   66   67   68   69   70   71   72   73   74   75   76