Das Dependency-Inversion-Prinzip
摘要
Die Kernaspekte einer Anwendung sollten nicht von ihrer Peripherie abhängen – sondern beide von Abstraktionen. Das Ziel aller Softwarearchitektur ist eine flexible Anwendung, die sich einfach erweitern lässt und aus wiederverwendbaren, entsprechend voneinander unabhängigen Komponenten besteht. Entscheidend ist dabei die Richtung von Abhängigkeiten. Der naive Ansatz führt meist zu Abhängigkeiten innerhalb der Software, die in die gleiche Richtung wie der Kontrollfluss zeigen. Soll die aufgerufene Komponente ausgetauscht oder verändert werden, muss in der Regel auch die aufrufende Komponente verändert werden. Der Kerngedanke des Dependency‐Inversion-Prinzips (DIP) und gleichzeitig der Grund für seinen Namen ist die Umkehr der üblichen Abhängigkeiten, die parallel zum Kontrollfluss verlaufen. Das führt zu einer Entkopplung von Klassen voneinander und sorgt im Kontext des DIP für eine Modularität auch über Schichtgrenzen einer Gesamtanwendung hinweg. Die korrekte Anwendung des DIP ist ein grundlegender Mechanismus für die objektorientierte Programmierung – und entscheidet darüber, ob ein Entwurf im eigentlichen Sinn objektorientiert ist oder nicht.