Java Reference
In-Depth Information
4.11 Das Verhaltensmuster Beobachter
4.11.1
Name/Alternative Namen
Beobachter (engl. Observer), Publizieren/Abonnieren (engl. Publish/Subscribe), Zuhö-
rer (engl. Listener) 54 .
4.11.2
Problem
Ändert sich der Zustand eines Objekts, sollen alle von diesem Objekt abhängigen Ob-
jekte benachrichtigt werden, so dass eine Aktualisierung dieser Objekte automatisch
eingeleitet werden kann. Die beteiligten Objekte sollen lose gekoppelt sein, um eine
Wiederverwendung der Klassen zu ermöglichen. Die Menge der Objekte, die bei einer
Zustandsänderung benachrichtigt werden sollen, soll dynamisch veränderbar sein,
d. h., abhängige Objekte können zu dieser Menge hinzukommen und zu einem spä-
teren Zeitpunkt auch wieder entfernt werden.
Das Beobachter-Muster soll es erlauben, dass ein Objekt abhän-
gige Objekte von einer Änderung seines Zustands informiert, so
dass eine Aktualisierung automatisch eingeleitet werden kann.
4.11.3
Lösung
Das Beobachter-Muster ist ein objektbasiertes Entwurfsmuster. Ein Objekt vom Typ
Beobachtbar kann von einer beliebigen Anzahl Objekte der Klasse Beobachter
überwacht werden.
Die Struktur des Entwurfsmusters Beobachter enthält:
x ein Daten haltendes Objekt ( Beobachtbares Objekt/Observable/Publisher ), des-
sen Daten und damit dessen Zustand sich ändern können, und
x mehrere Interessenten für die gekapselten Daten ( Beobachter/Observer/Subscri-
ber ), die gegebenenfalls auf Änderungen der Daten reagieren wollen.
Dabei soll ein Daten haltendes Objekt die Interessenten noch nicht zur Kompilierzeit,
sondern erst zur Laufzeit nach ihrer Anmeldung kennen. Damit ein Beobachter über
Änderungen des zu beobachtenden Objektes informiert wird, muss er sich zuvor beim
beobachtbaren Objekt anmelden. Anschließend erhält der Beobachter solange bei
jeder Zustandsänderung des zu beobachtenden Objekts eine Nachricht, bis er sich
selbst wieder abmeldet. Das Muster geht davon aus, dass ein Beobachter das Objekt
kennt, bei dem er sich anmelden und abmelden muss - schließlich will er es ja beob-
achten.
54 In der deutschen Literatur ist praktisch nur der deutsche Name Beobachter geläufig, ansonsten alle
genannten englischen Namen.
Search WWH ::




Custom Search