Java Reference
In-Depth Information
Inversion of Control kann zwischen Objekten derselben Hierar-
chiestufe eingesetzt werden, um Abhängigkeitsbeziehungen zu
invertieren.
Bei der Umkehrung des Kontrollflusses gibt das ursprüngliche Programm die Steue-
rung des Kontrollflusses an ein anderes - meist wiederverwendbares - Modul ab.
Damit kommt man vom Pollen zur ereignisgetriebenen Programmierung. Oft ruft dann
ein mehrfach verwendbares Modul wie etwa ein Framework ein spezielles Modul wie
beispielsweise ein Anwendungsprogramm auf.
Die Inversion des Kontrollflusses führt vom prozeduralen Pro-
gramm mit Pollen zur ereignisgetriebenen Programmierung.
Ein Beispiel zur Anwendung von Inversion of Control ist beim Beobachter-Muster
(siehe Kapitel 4.11) zu sehen. Wenn ohne den Einsatz dieses Musters ein Beobachter
reagieren will, wenn sich der Zustand eines beobachtbaren Objektes ändert, dann
muss er, wenn er die Kontrolle hat, d. h. ohne den Einsatz des Beobachter-Musters ar-
beitet, dieses Objekt per Polling beobachten. Durch Inversion of Control geht jedoch
die Kontrolle an das zu beobachtende (beobachtbare) Objekt. Dieses weiß ja, wann
sich sein Zustand ändert. Tritt dieser Fall ein, so kann das beobachtbare Objekt seine
Beobachter benachrichtigen. Damit das beobachtbare Objekt vom Beobachter unab-
hängig ist, muss jeder Beobachter ein Callback-Interface , welches durch das zu
beobachtende Objekt definiert wird, implementieren.
Die Architektur zur Erreichung der Inversion of Control ist genau dieselbe wie bei der
Dependency Inversion in Hierarchien:
«interface»
Callback-
Interface
Beobachtbar
Beobachter
Bild 1-13 Architektur zur Verwirklichung von Inversion of Control
Allerdings stehen die Klassen Beobachtbar und Beobachter nicht in einer hierar-
chischen Beziehung zueinander sondern befinden sich auf derselben Ebene .
Wenn der Beobachtbare einen Beobachter direkt aufrufen würde, wäre er von ihm ab-
hängig. Wenn der Beobachtbare aber das Callback-Interface selbst vorgibt und aggre-
giert, wird der Beobachtbare aber vom Beobachter unabhängig ( Dependency Inver-
Search WWH ::




Custom Search