Dependency Injection
Dependency Injection verlagert die Erzeugung und Verdrahtung von Abhängigkeiten in einen externen Container; Komponenten erhalten Abhängigkeiten über Konstruktor/Property/Schnittstelle und entkoppeln so die Aufrufer.
Zweck
Modulkopplung senken und Testbarkeit sowie Konfigurierbarkeit verbessern — die Umsetzung des DIP aus SOLID.
Mechanismus
Konstruktor-Injektion: der Konstruktor empfängt Abhängigkeiten. Property-Injektion: Setter weisen sie zu. Schnittstellen-Injektion: Implementieren einer Schnittstelle, um sie zu erhalten. Ein Container (Spring/DI-Frameworks) injiziert nach Konfiguration. Inversion of Control (IoC) ist der Kerngedanke.
Anwendungsfälle
- Entkoppeltes Design
- Unit-Tests
- Framework-Design