Abhängigkeitsumkehr
Abhängigkeitsumkehr, auch Abhängigkeitsinversionsprinzip (DIP) genannt, ist ein Grundsatz der Softwarearchitektur. Er besagt, dass High-Level-Komponenten nicht von Low-Level-Komponenten abhängen sollten. Stattdessen sollen beide Schichten von Abstraktionen abhängen, und Details sollen sich nach diesen Abstraktionen richten. Das Prinzip ist Bestandteil der SOLID-Prinzipien und wurde von Robert C. Martin formuliert. Ziel ist eine lose Kopplung, die Systementwurf, Erweiterbarkeit, Testbarkeit und Wartbarkeit verbessert.
In der Praxis bedeutet dies, dass konkrete Implementierungen (z. B. Datenzugriff, Logging oder externe Dienste) über
Umsetzungstechniken umfassen Dependency Injection (Konstruktor-, Setter- oder Interface-Injection), Inversion-of-Control-Container und, in manchen Fällen, Service Locator. Durch
interface ILogger { void Log(string message); }
class ConsoleLogger : ILogger { public void Log(string message) { Console.WriteLine(message); } }
class Processor { private readonly ILogger logger; public Processor(ILogger logger) { this.logger = logger; } public void Execute() { logger.Log("Starting"); }
Vorteile umfassen erhöhte Austauschbarkeit von Implementierungen, einfache Testbarkeit durch Mocking und geringere Kopplung. Nachteile können zusätzliche