empros gmbh - process & information management services
1009-chatExperience is the hardest kind of teacher.
It gives you the test first and the lesson afterward.

-Susan Ruth

The Open-Closed Principle

Heuristik

Klassen sollten für Änderungen geschlossen und für Erweiterungen offen sein.

Erklärung

Dieses von Betrand Meyer formulierte Prinzip berührt eine Reihe von fundamentalen Aspekten der Objektorientierung, namentlich Vererbung, Polymorphismus und Kapselung.

Wenn eine Änderung in einer Software zu einer wahren Kaskade an weiteren Änderungen führt, dann zeigen solche Systeme alle Zeichen, die wir allgemein mit schlechtem Entwurf in Verbindung bringen: Die Software ist starr und alles andere als formbar, sie ist anfällig für ungewollte Seiteneffekte und macht einen zerbrechlichen Eindruck; die kleinste Anpassung erzeugt in diesem starren Gebilde soviel Spannung, dass es zu zerbrechen droht.

Das "Open-Closed"-Prinzip hilft uns beim Entwerfen von änderungsfreundlicher Software auf einefache Art und Weise, indem es fordert, dass wir Klassen - oder allgemeiner Module - entwerfen, die sich niemals ändern. Änderungen in den Anforderungen werden abgedeckt, indem bestehendes Verhalten erweitert wird.

Klassen, die dem "Open-Closed"-Prinzip gehorchen, verfügen über zwei wesentliche Eigenschaften:

  • Sie sind offen gegenüber Erweiterungen. Das heisst, das Verhalten solcher Klasse kann erweitert werden, um neue Anforderungen einer bestehenden oder gar neuen Anwendung zu erfüllen.
  • Sie sind geschlossen gegenüber nachträglicher Veränderung. Das heisst, dass sie nicht mehr modifiziert werden müssen, um als Basis für neue Anforderungen dienen zu können.

Die konsequente Beachtung dieses Prinzips fordert und fördert die geschickte Kombination von Aggregation, Vererbung, Polymorphismus und Kapselung in objekt-orientierten Entwürfen. Es hilft uns damit, robuste und änderungsfreundliche Software zu entwickeln.

Das "Open Closed"-Prinzip liegt übrigens vielen der von der GoF in ihrem Standardwerk beschriebenen Entwurfsmuster zugrunde.

Lesen hierzu auch