Page 79 - 4190
P. 79

Рисунок 7.10 – UML-діаграма класів патерну Chain of Responsibility

                  Патерн Observer

                  При реалізації шаблону «Спостерігач» зазвичай використовують
            такі класи:
                    Observable – інтерфейс, що визначає методи для додавання, ви-

            далення та оповіщення спостерігачів.
                    Observer  –  інтерфейс,  за  допомогою  якого  спостережуваний
            об'єкт оповіщає спостерігачів.
                    ConcreteObservable – конкретний клас, який реалізує інтерфейс

            Observable.
                    ConcreteObserver  –  конкретний  клас,  який  реалізує  інтерфейс
            Observer.

                  При  зміні  спостережуваного  об’єкту,  оповіщення  спостерігачів
            може бути реалізоване за такими сценаріями:
                  1. Спостережуваний  об’єкт  надсилає  кожному  із  зареєстрованих
            спостерігачів  всю  потенційно  релевантну  інформацію  (примусове

            розповсюдження).
                  2. Спостережуваний  об’єкт  надсилає  кожному  із  зареєстрованих
            спостерігачів лише повідомлення про те що інформація була змінена,

            а кожен із спостерігачів, за необхідності, самостійно здійснює запит
            необхідної інформації у спостережуваного об’єкта (розповсюдження
            за запитом).

                  Шаблон «спостерігач» застосовують у тих випадках, коли систе-
            ма має такі властивості:
                    існує, як мінімум, один об'єкт, що розсилає повідомлення;

                    є не менше одного одержувача повідомлень, причому їхня кі-
            лькість і склад можуть змінюватися під час роботи програми.
                                                              79
   74   75   76   77   78   79   80   81   82   83   84