bg_image
header

Dependency Inversion Principle

Das Dependency Inversion Principle (DIP) ist das letzte der fünf SOLID-Prinzipien in der objektorientierten Programmierung und Softwareentwicklung. Es wurde von Robert C. Martin formuliert und behandelt die Abhängigkeiten zwischen verschiedenen Komponenten und Klassen in einer Software.

Das Prinzip besagt, dass Abhängigkeiten nicht von konkreten Implementierungen, sondern von abstrakten Abstraktionen abhängen sollten. Das bedeutet, dass hochrangige Komponenten (oberste Ebenen) nicht von niedrigrangigen Komponenten (unterste Ebenen) abhängen sollten. Stattdessen sollten sowohl die hochrangigen als auch die niedrigrangigen Komponenten von einer abstrakten Schnittstelle oder Klasse abhängen.

Das Dependency Inversion Principle besteht aus zwei Teilen:

  1. High-Level Modules Should Not Depend on Low-Level Modules: Dies bedeutet, dass die Hauptkomponenten oder höheren Ebenen einer Anwendung nicht von den Details oder niedrigeren Ebenen abhängen sollten. Statt dessen sollten sie von abstrakten Schnittstellen oder Klassen abhängen, die von den Details isoliert sind.

  2. Abstractions Should Not Depend on Details: Abstraktionen, d.h. abstrakte Schnittstellen oder Klassen, sollten nicht von den konkreten Implementierungen oder Details abhängen. Die Details sollten von den Abstraktionen abhängen, sodass verschiedene Implementierungen ausgetauscht werden können, ohne die Abstraktionen zu ändern.

Durch die Anwendung des Dependency Inversion Principle wird die Kopplung zwischen den Komponenten verringert, was zu einer flexibleren und wartbareren Software führt. Es ermöglicht auch eine einfachere Erweiterung und Änderung des Codes, da das Hinzufügen oder Austauschen von Komponenten nur auf der Ebene der abstrakten Schnittstellen erfolgt, ohne dass Änderungen auf höherer Ebene erforderlich sind.

Das DIP ist eng mit anderen SOLID-Prinzipien verbunden, insbesondere mit dem Interface Segregation Principle (ISP) und dem Open/Closed Principle (OCP). Durch die Verwendung abstrakter Schnittstellen gemäß dem DIP wird auch das ISP gefördert, da jede Komponente nur die spezifischen Schnittstellen nutzt, die sie benötigt. Darüber hinaus fördert das DIP auch die Offenheit für Erweiterungen (OCP), da neue Implementierungen hinzugefügt werden können, ohne bestehenden Code zu ändern, solange sie die abstrakten Schnittstellen einhalten.


Erstellt vor 2 Jahre
Design Patterns Objektorientierten Programmierung Prinzipien Programmierung

Hinterlasse einen Kommentar Antworten Abbrechen
* Erforderliches Feld