Page 79 - 4190
        P. 79
     Рисунок 7.10 – UML-діаграма класів патерну Chain of Responsibility
                  Патерн Observer
                  При реалізації шаблону «Спостерігач» зазвичай використовують
            такі класи:
                    Observable – інтерфейс, що визначає методи для додавання, ви-
            далення та оповіщення спостерігачів.
                    Observer  –  інтерфейс,  за  допомогою  якого  спостережуваний
            об'єкт оповіщає спостерігачів.
                    ConcreteObservable – конкретний клас, який реалізує інтерфейс
            Observable.
                    ConcreteObserver  –  конкретний  клас,  який  реалізує  інтерфейс
            Observer.
                  При  зміні  спостережуваного  об’єкту,  оповіщення  спостерігачів
            може бути реалізоване за такими сценаріями:
                  1. Спостережуваний  об’єкт  надсилає  кожному  із  зареєстрованих
            спостерігачів  всю  потенційно  релевантну  інформацію  (примусове
            розповсюдження).
                  2. Спостережуваний  об’єкт  надсилає  кожному  із  зареєстрованих
            спостерігачів лише повідомлення про те що інформація була змінена,
            а кожен із спостерігачів, за необхідності, самостійно здійснює запит
            необхідної інформації у спостережуваного об’єкта (розповсюдження
            за запитом).
                  Шаблон «спостерігач» застосовують у тих випадках, коли систе-
            ма має такі властивості:
                    існує, як мінімум, один об'єкт, що розсилає повідомлення;
                    є не менше одного одержувача повідомлень, причому їхня кі-
            лькість і склад можуть змінюватися під час роботи програми.
                                                              79
     	
