Dependency Injection
Rufen Sie uns nicht an, wir rufen Sie an
Das Hollywood - Prinzip “rufen Sie uns nicht an, wir rufen Sie an” hilft uns dabei, die Komplexität unserer Software - Systeme zu vereinfachen und die Anwendungen testbar zu halten. Die Idee dahinter ist einfach aber bestechend. Wir vermeiden es jene Objekte, von denen die aktuelle Klasse abhängt, selbst zu erstellen.
Wir geben die Kontrolle über den Zusammenbau unserer Objekte ab. Wir geben die Kontrolle jemandem, der mehr über den Context, in dem unsere Anwendung läuft, weiss. Wir begnügen uns damit zu wissen, welche Funktionen ein Objekt, mit dem wir zusammenarbeiten, hat. Es interressiert uns nicht, wie dieses Objekt erzeugt wird. Wir lassen uns diese Abhängigkeiten einimpfen.
Dieses Impfen geschieht in unseren Klassen durch die Annotation @Inject. Ein Beispiel dafür wäre folgender Code aus dem REST Beitrag:
An anderer Stelle ist dann eine @Named Annotation zu finden.
Die @Named Annotation benennt jene Objekte, die als Abhängigkeiten in andere Object “eingeimpft” werden können.