Java Reference
In-Depth Information
x Der Beobachter kennt zur Kompilierzeit nur das Interface IBeobachtbar und das
Callback-Interface, das er selbst implementiert.
Die Methodenaufrufe gehen also in beide Richtungen: Zum einen benutzt ein Objekt
der Klasse Beobachter das Interface IBeobachtbar und ruft damit eine Methode
eines Objektes auf, das dieses Interface implementiert. Zum anderen hält ein beob-
achtbares Objekt zur Laufzeit eine Referenz auf ein Objekt, das das Interface
IBeobachter implementiert, und ruft Methoden auf diesem Objekt auf. Da aber das
Interface IBeobachter vom Beobachtbaren vorgegeben wird und damit zum Beob-
achtbaren gehört, ist der Beobachtbare in der Tat nicht von dem Interface IBeob-
achter abhängig. Hingegen ist der Beobachter vom Beobachtbaren abhängig. Ob-
wohl die Methodenaufrufe also in beide Richtungen gehen, besteht eine Abhängigkeit
nur in einer einzigen Richtung, wie bereits in Bild 4-33 dargestellt wurde.
Ein Beobachter ist nur dann ein Beobachter, wenn er
x das Interface des beobachteten Objekts, IBeobachtbar , benutzt und
x selbst das vom beobachteten Objekt verlangte Callback-Interface, nämlich das In-
terface IBeobachter , implementiert.
Zum Beobachtbaren gehören deswegen:
x die Vorgabe des Interface des beobachteten Objekts, IBeobachtbar ,
x die Implementierung dieses Interface und
x die Vorgabe des Interface IBeobachter des Beobachters (Callback-Interface).
4.11.3.2 Teilnehmer
Für die beiden Rollen gibt es jeweils ein Interface 57 , nämlich die Interfaces IBeob-
achtbar und IBeobachter .
IBeobachtbar
Dieses Interface für das beobachtbare Objekt enthält die Operationen für das An- und
Abmelden der Beobachter, sowie die abstrakte Methode gibZustand() zum Abruf
der geänderten Daten. Beliebig viele Exemplare vom Typ Beobachter können ein
Objekt vom Typ Beobachtbar beobachten.
IBeobachter
IBeobachter ist das Callback-Interface des Beobachtbaren. Der Beobachtbare kennt
nur dieses Interface eines Beobachters. Dieses Interface wird von einem Beobachter
realisiert. Es enthält den Methodenkopf der Methode aktualisieren() . Die Metho-
de aktualisieren() wird vom Beobachtbaren für einen Rückruf, also zum Signali-
sieren einer Zustandsänderung, verwendet.
Ferner gibt es die Klassen Beobachtbar und Beobachter :
57 Alternativ kann auch eine abstrakte Klasse verwendet werden.
Search WWH ::




Custom Search