Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:lehre:programmierkonzepte:ws2017:24:index

24. Open-Closed-Prinzip

Themen
Das Open-Closed-Prinzip
Beispiele für seinen Einsatz
Bedeutung im Gesamtkontext der Software-Architektur
Folien
PDF


Zentrale Aspekte

  • Softwareeinheiten sollten offen für Erweiterungen,
    aber verschlossen gegenüber Veränderungen sein.
  • Schlüssel des Prinzips sind zwei Kernaspekte der OOP:
    Vererbung und Polymorphie (zusammen mit Abstraktion).
  • Implementiert werden sollte immer nur
    gegen (abstrakte) Schnittstellen.
  • Verschlossenheit gegenüber Veränderung ist nie vollständig.
  • Kern objektorientierten Entwurfs:
    Führt zu Flexibilität, Wiederverwendbarkeit, Wartbarkeit.

Weiterführende Literatur

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

Die Formulierung und Namensnennung geht auf Bertrand Meyer zurück: [Meyer, 1997Meyer, Bertrand (1997): Object-Oriented Software Construction, Prentice Hall PTR, Upper Saddle River, New Jersey], Kapitel 3.3, S. 57ff. In den Reigen der SOLID-Prinzipien aufgenommen wurde es von Robert C. Martin, der es in seinen Büchern diskutiert, z.B. in Kapitel 9 in [Martin, 2003Martin, Robert C. (2003): Agile Software Development. Principles, Patterns, and Practices, Prentice Hall, Upper Saddle River, New Jersey]. Die Erweiterung auf höhere Ebenen der Software-Architektur jenseits des Zusammenspiels von Klassen inklusive einer Diskussion des Zusammenhangs zwischen Abstraktion und Stabilität und Metriken für Abstraktion werden in [Martin, 2018Martin, Robert C. (2018): Clean Architecture. A Craftman's Guide to Software Structure and Design, Prentice Hall, Boston], S. 126ff., ausgeführt.

Viele der Muster, die in [Gamma, 1995Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1995): Design Patterns. Elements of Reusable Object-Oriented Software, Addison-Wesley, Boston] vorgestellt werden, verwenden auf die eine oder andere Weise das OCP.

  • 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
  • Meyer, Bertrand (1997): Object-Oriented Software Construction, Prentice Hall PTR, Upper Saddle River, New Jersey
de/lehre/programmierkonzepte/ws2017/24/index.txt · Zuletzt geändert: 2020/09/30 21:35 von 127.0.0.1