Java Reference
In-Depth Information
Zunächst wird die Ausgangssituation vor der Verringerung der Abhängigkeiten be-
trachtet: Wenn ein Objekt von einem anderen Objekt abhängig ist, besitzt es in der
Regel eine Referenz auf das andere Objekt, um es für seine Zwecke bei Bedarf nutzen
zu können. Allgemein gesprochen sind diese beiden Objekte miteinander verknüpft.
Um ein Objekt mit einem anderen Objekt zu verknüpfen und damit eine Abhängigkeits-
beziehung herzustellen, gibt es mehrere Möglichkeiten. Die offensichtlichste ist, dass -
wie in Bild 1-15 dargestellt - ein Objekt dasjenige Objekt, das es benötigt, selbst
erzeugt. Damit es dies kann, muss das erzeugende Objekt Informationen über das
andere Objekt statisch im Quellcode halten. Dadurch wird es bereits von dem anderen
Objekt abhängig.
Durch Verwendung einer Fabrikmethode (siehe Kapitel 4.18) kann bei der Erzeugung
eines benötigten Objektes zwar etwas Flexibilität gewonnen werden. Aber auch in
einer Fabrikmethode wird ein Objekt erzeugt und die Klasse des zu erzeugenden
Objekts statisch im Quellcode der entsprechenden Unterklasse festgelegt.
Die Strategie für die Verringerung der Abhängigkeit eines nutzenden Objekts von
einem zu erzeugenden Objekt ist:
Bei der Erzeugung von Objekten wird die Kontrolle darüber, wel-
ches Objekt wann erzeugt wird, von der nutzenden Klasse an
eine dafür eigens vorgesehene Instanz abgegeben.
Hierfür werden die beiden folgenden Techniken verwendet:
x Dependency Look-Up
Bei einem Dependency Look-Up sucht ein Objekt, das ein anderes Objekt braucht,
nach diesem anderen Objekt z. B. in einem Register, um die Verknüpfung mit die-
sem herzustellen. Damit braucht es nur noch den Namen des anderen Objekts zu
kennen und ist von dem anderen Objekt weitgehend entkoppelt. Aber natürlich
hängt es dann vom Register ab.
x Dependency Injection 14
Hierbei wird die Erzeugung von Objekten und die Zuordnung von Abhängigkeiten
zwischen Objekten an eine dafür vorgesehene Instanz delegiert. Damit sind die
Objekte untereinander selbst nicht abhängig, aber die erzeugende Instanz ist von
allen beteiligten Objekten abhängig. Da die erzeugende Instanz alle Objekte und
Verbindungen erzeugt, ist ein Objekt vom Injektor unabhängig.
1.10.1
Dependency Look-Up
Bei einem Dependency Look-Up sucht ein Objekt, das ein anderes Objekt braucht,
nach diesem anderen Objekt über dessen Namen, um die Verknüpfung mit diesem
herzustellen. Die einzige Abhängigkeit zwischen den beiden Objekten ist, dass das
14 Der Begriff Dependency Injection wurde zum ersten Mal von M. Fowler in [fowioc] benutzt, um diese
Technik von der Inversion of Control abzugrenzen.
Search WWH ::




Custom Search