Java Reference
In-Depth Information
Policy Layer
Mechanism Layer
Utility Layer
Bild 1-11 Einfache Ebenenstruktur
In einem klassischen Entwurf würde eine Klasse einer höheren
Ebene direkt eine Methode einer Klasse der untergeordneten
Ebene aufrufen und würde dadurch von ihr abhängig.
Vorsicht!
Der Lösungsansatz des Dependency Inversion-Prinzips ist,
dass eine Klasse einer höheren Ebene beispielsweise ein
Interface oder eine abstrakte Klasse als Abstraktion aggregiert.
Diese Abstraktion wird von der höheren Klasse vorgegeben.
Die untergeordneten Klassen sollen nur von der entsprechenden Abstraktion abhän-
gen. Damit erklärt sich auch der Begriff Dependency Inversion: Durch die Anwendung
von Dependency Inversion werden die Abhängigkeitsbeziehungen , die normaler-
weise aus einem klassischen Entwurf resultieren und die, wie in Bild 1-11 zu sehen ist,
von oben nach unten verlaufen, invertiert und verlaufen stattdessen von unten nach
oben.
Das Dependency Inversion-Prinzip bedeutet:
x Eine Klasse einer höheren Ebene soll nicht von einer Klasse
einer tieferen Ebene abhängig sein.
x Als Abstraktion soll die Klasse der höheren Ebene ein Interface
oder eine abstrakte Klasse aggregieren. Diese Abstraktion soll
wiederum von der Klasse der tieferen Ebene implementiert
werden.
x Die Abstraktion soll von der höheren Ebene vorgegeben wer-
den.
x Eine Abstraktion soll also nicht von einer Klasse einer tieferen
Ebene abhängen.
x Hingegen soll eine Klasse einer tieferen Ebene von einer Ab-
straktion abhängen.
Search WWH ::




Custom Search