Obserwator (Observer)

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Obserwator to behawioralny wzorzec projektowy. Opisuje zależność typu „jeden do wielu”, w której zmiana stanu jednego obiektu powoduje automatyczne powiadomienie innych obiektów.

Obiekt obserwowany nazywa się często:
- subject,
- observable,
- publisher.

Obiekty zainteresowane zmianami to:
- observers,
- subscribers,
- listeners.

Przykład zastosowania

Typowym przykładem jest system zdarzeń w interfejsie użytkownika. Przycisk może informować zarejestrowane obiekty, że został kliknięty.

Button -> powiadamia -> ClickListener

Inny przykład to newsletter: użytkownicy zapisują się do listy, a po publikacji nowej wiadomości wszyscy subskrybenci otrzymują powiadomienie.

Jak działa?

  1. Obserwator rejestruje się w obiekcie obserwowanym.
  2. Obiekt obserwowany przechowuje listę obserwatorów.
  3. Po zmianie stanu wywołuje metodę powiadamiającą.
  4. Obserwatorzy reagują na zmianę.

Do jakiej grupy należy?

Observer należy do wzorców behawioralnych, ponieważ opisuje sposób komunikacji i reagowania obiektów na zmiany.

Nie jest wzorcem strukturalnym, ponieważ jego głównym celem nie jest łączenie klas w strukturę, ale organizacja zachowania i przepływu informacji.

Na egzaminie

Jeśli pytanie dotyczy klasyfikacji wzorców, Obserwator należy kojarzyć z grupą wzorców behawioralnych.