Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:lehre:programmierkonzepte:ws2018:27:index

27. Dependency-Inversion-Prinzip

Themen
Das Dependency-Inversion-Prinzip
Beispiele für seinen Einsatz
Bedeutung im Gesamtkontext der Software-Architektur
Folien
PDF
Glossar
PDF


Zentrale Aspekte

  • Die Kernaspekte einer Anwendung sollten nicht von ihrer Peripherie abhängen – sondern beide von Abstraktionen.
  • Anwendungsentwicklung zielt auf die zugrundeliegenden Abstraktionen und ihre stabilen, abstrakten Schnittstellen.
  • Anwendungen bestehen aus klar getrennten Schichten, die Dienste über definierte Schnittstellen bereitstellen.
  • Die Anwendungslogik steht im Zentrum. Datenquellen und Nutzerschnittstellen sind peripher.
  • Umkehr der Abhängigkeiten sorgt für Unabhängigkeit und intrinsische Testbarkeit der einzelnen Schichten.

Fragen zur Vertiefung und Wiederholung

Diese Fragen dienen der persönlichen Beschäftigung mit der Thematik, werden aber nicht separat in der Vorlesung besprochen.

  • Was ist die Kernaussage des Dependency-Inversion-Prinzips?
  • Welche Entwurfsmuster sind essentiell für die Umsetzung des DIP?
  • Wie unterscheiden sich Open-Closed-Prinzip und DIP voneinander?
  • Welche Bedeutung hat das DIP für die objektorientierte Programmierung und insbesondere das Einlösen ihrer Versprechen flexibler, erweiterbarer und wiederverwendbarer Software?
  • Welche beiden Prinzipien auf Komponentenebene bilden zusammengenommen das DIP auf Ebene der Gesamtarchitektur? Wie lauten die jeweiligen Aussagen?

Weiterführende Literatur

Eine kommentierte und handverlesene Liste mit weiterführender Literatur zum Thema. Die Auswahl ist zwangsläufig subjektiv.

Wie alle anderen SOLID-Prinzipien wurde das DIP von Robert C. Martin prägnant formuliert. Vergleiche dazu Kapitel 11 in [Martin, 2003Martin, Robert C. (2003): Agile Software Development. Principles, Patterns, and Practices, Prentice Hall, Upper Saddle River, New Jersey] und Kapitel 11 in [Martin, 2018Martin, Robert C. (2018): Clean Architecture. A Craftman's Guide to Software Structure and Design, Prentice Hall, Boston]. Das Pendant auf höherer architektonischer Ebene, das Zusammenspiel von Stable-Dependencies- und Stable-Abstractions-Prinzip, wird von Robert C. Martin ebenda in späteren Kapiteln formuliert.

Die dem DIP zugrunde liegenden Entwurfsmuster, insbesondere „Abstract Factory“, finden sich im Buch der „Gang of Four“ [Gamma, 1995Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1995): Design Patterns. Elements of Reusable Object-Oriented Software, Addison-Wesley, Boston] wieder.

  • Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1995): Design Patterns. Elements of Reusable Object-Oriented Software, Addison-Wesley, Boston
  • Martin, Robert C. (2003): Agile Software Development. Principles, Patterns, and Practices, Prentice Hall, Upper Saddle River, New Jersey
  • Martin, Robert C. (2018): Clean Architecture. A Craftman's Guide to Software Structure and Design, Prentice Hall, Boston
de/lehre/programmierkonzepte/ws2018/27/index.txt · Zuletzt geändert: 2020/09/30 21:35 von 127.0.0.1