Java Reference
In-Depth Information
sich selbst. Daraufhin kann der aufgerufene Beobachter mittels dieser Referenz die
Methode gibZustand() bei dem beobachteten Objekt aufrufen und sich die Informa-
tion über den neuen Zustand des beobachteten Objekts besorgen. Die Übergabe der
Selbst-Referenz beim Aufruf der Methode aktualisieren() ist deshalb nötig, damit
ein Beobachter, der mehrere Objekte gleichzeitig beobachtet, weiß, welches dieser
Objekte seinen Zustand geändert hat. Die Methode gibZustand() steht hier stellver-
tretend für eine oder mehrere get-Methoden, die es einem Beobachter erlauben, sich
über den Zustand eines beobachteten Objekts zu informieren. Die beiden genannten
Methoden sind im folgenden Klassendiagramm des Beobachter-Musters dargestellt:
«interface»
IBeobachtbar
anmelden (o: IBeobachter)
abmelden (o: IBeobachter)
gibZustand()
«use»
«interface»
IBeobachter
aktualisieren (o: IBeobachtbar)
Beobachtbar
Beobachter
anmelden (o: IBeobachter)
abmelden (o: IBeobachter)
gibZustand()
aktualisieren (o: IBeobachtbar)
Bild 4-34 Klassendiagramm des Beobachter-Entwurfmusters
Beim Beobachter-Muster (siehe Bild 4-34) werden Nachrichten in beide Richtungen
zwischen den Objekten vom Typ Beobachter und dem Objekt vom Typ Beobacht-
bar ausgetauscht. Das beobachtbare Objekt verpflichtet den Aufrufer, ein spezielles
Interface ( Callback-Interface 56 ) zu implementieren, das vom beobachtbaren Objekt
vorgegeben wird. Ändert sich ein Beobachter, so hat dies keinen Einfluss auf das
beobachtbare Objekt, solange das Callback-Interface IBeobachter und das Inter-
face IBeobachtbar eingehalten werden. Dagegen wirken sich Änderungen an dem
Callback-Interface IBeobachter oder an dem Interface IBeobachtbar auf die
Beobachter aus.
Merkmale des Musters sind:
x Das zu beobachtende Objekt kennt zur Kompilierzeit nur das Beobachter-Interface
IBeobachter , d. h. das Callback-Interface, und das Interface IBeobachtbar des
Beobachtbaren, aber nicht die Implementierung eines Beobachters.
x Das zu beobachtende Objekt hält zur Laufzeit nach der Anmeldung eines Beobach-
ters eine Referenz auf diesen Beobachter.
56 Die Callback-Funktion (Rückruffunktion) wird vom Objekt der Klasse Beobachtbar aufgerufen.
Search WWH ::




Custom Search