Das Dependency Inversion Principle (DIP) ist das SOLID-Prinzip von Robert C. Martin, nach dem High-Level-Module nicht von Low-Level-Modulen abhängen sollen; beide hängen von Abstraktionen ab, und Details hängen von Abstraktionen ab, nicht umgekehrt. In der Praxis werden Abhängigkeiten über Interfaces injiziert. So übersteht die Geschäftslogik den Wechsel von Datenbank oder Framework und lässt sich ohne echte externe Dienste per Unit-Test prüfen.

SOLID-Dependency Inversion Principle

Details
Vollständiger Name

SOLID Dependency Inversion Principle (DIP)

Absicht:

High-Level-Module sollten nicht von Low-Level-Modulen abhängen. Beide sollten von Abstraktionen abhängen. Abstraktionen sollten nicht von Details abhängen; Details sollten von Abstraktionen abhängen.

Wann zu verwenden:

  • High-Level-Geschäftslogik instanziiert direkt Infrastrukturklassen

  • Das Wechseln einer Datenbank oder eines Frameworks erfordert Änderungen an der Geschäftslogik

  • Unit-Tests erfordern das Ausführen tatsächlicher externer Dienste

Prompt-Beispiel:

"Refactore diese Klasse nach dem SOLID-Dependency Inversion Principle, sodass die Abhängigkeiten über Interfaces injiziert werden."

Verwandte Anker: