Java Reference
In-Depth Information
sion
). Das Callback-Interface wird in der folgenden Beschreibung des Beobachter-
Musters
IBeobachter
genannt.
Berücksichtigt man, dass ein Beobachter auf den Beobachtbaren über das von ihm
selbst vorgegebene Interface
IBeobachtbar
zugreift, so kommt man zum Klassen-
diagramm des Beobachtermusters. Dies ist im Folgenden 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 1-14 Klassendiagramm des Beobachter-Entwurfmusters
Durch das Callback-Interface
IBeobachter
mit dem Methodenkopf
aktuali-
sieren(o:
IBeobachtbar)
wird der Beobachtbare vom Beobachter unabhängig.
Hält der Beobachter das Callback-Interface nicht ein, ist er kein Beobachter mehr.
Durch die Einführung des Callback-Interface wird ein Beobachtbarer mehrfach ver-
wendbar und ist nicht vom speziellen Beobachter abhängig. Er ruft nun die speziellen
Beobachter über das Callback-Interface auf.
Auf ähnliche Weise funktionieren Views als Listener und deren
Controller. Die Kontrol-
le ist im Controller. Eine View muss nicht dauernd einen Controller nach Ereignissen
pollen. Ein Controller schreibt einer View eine Callback-Schnittstelle für Ereignisse des
Controllers vor. Mehrere Views können sich als Listener bei einem Controller anmel-
den, der dann Ereignisse generiert. Ein solcher Controller entspricht hierbei einem
Beobachtbaren. Er hat die Kontrolle, generiert Ereignisse und ist wiederverwendbar.
Das Observer- bzw. Listener-Muster ist beispielsweise im Event Handling-Mechanis-
mus von Swing umgesetzt.
Inversion of Control
bedeutet in der Praxis meist, dass ein spe-
zielles Modul wie eine Anwendung die Steuerung des Kontroll-
flusses an ein wiederverwendbares Modul abgibt. Damit das wie-
derverwendbare Modul das spezielle Modul nutzen kann, definiert
das wiederverwendbare Modul ein
Callback-Interface
, das von
dem speziellen Modul implementiert werden muss.
Inversion of Control oder Umkehrung des Kontrollflusses ist ein Paradigma, das auch
von
Frameworks
umgesetzt wird, um eine Funktion einer Anwendung aufzurufen.
Search WWH ::
Custom Search