Zum Inhalt springen

Dependency Injection

Eine Komponente erhält benötigte Abhängigkeiten von außen, statt konkrete Umsetzungen selbst zu erzeugen.

Auch bekannt alsDI
Softwarearchitektur

Was bedeutet Dependency Injection?

Bei Dependency Injection erhält eine Komponente benötigte Abhängigkeiten von außen, etwa als Parameter ihres Konstruktors. Sie muss die konkrete Umsetzung dann nicht selbst erzeugen. Die Zusammenstellung der Teile wird von ihrer Nutzung getrennt. Das kann mit gewöhnlichem Programmcode erfolgen; ein spezieller DI-Container ist für das Prinzip nicht erforderlich.

In einem erfundenen Beispiel bekommt eine Berichtskomponente einen Datenleser übergeben. Im Betrieb liest dieser aus der vorgesehenen Quelle; für einen gezielten Test kann eine passende Testimplementierung feste Daten liefern. Das erleichtert die isolierte Prüfung, belegt aber nicht die korrekte Anbindung der echten Quelle. Lebensdauer, Konfiguration und Freigabe benötigter Ressourcen bleiben zu klären. DI ist eine konkrete Form der Steuerungsumkehr; nicht jede Steuerungsumkehr und nicht jeder Service Locator ist DI.

Quellen