Offenes Prinzip
Im Objekt orientierte Programmierung, das offenes Prinzip Zustände "Softwareentitäten (Klassen, Module, Funktionen usw.) sollten für die Erweiterung geöffnet sein, aber für die Änderung geschlossen werden";[1] Das heißt, eine solche Entität kann zulassen, dass sein Verhalten verlängert werden, ohne es zu ändern Quellcode.
Der Name offenes Prinzip wurde auf zwei Arten verwendet. In beiden Arten nutzen Verallgemeinerungen (z. B., zum Beispiel, Nachlass oder delegierte Funktionen), um das scheinbare Dilemma zu lösen, aber die Ziele, Techniken und Ergebnisse sind unterschiedlich.
Offenes entschließtes Prinzip ist eines der fünf FEST Prinzipien des objektorientierten Designs.
Meyers offenes Prinzip
Bertrand Meyer wird im Allgemeinen dafür gutgeschrieben, den Begriff entstanden zu sein offenes Prinzip,[2] die in seinem Buch von 1988 erschien Objektorientierte Softwarekonstruktion.[1]: 23
- Ein Modul wird als offen sein, wenn es noch für die Erweiterung verfügbar ist. Beispielsweise sollte es möglich sein, den von ihnen enthälten Datenstrukturen Felder hinzuzufügen, oder neue Elemente zu den von ihnen ausgeführten Funktionen.
- Ein Modul wird als geschlossen bezeichnet, wenn [es] für andere Module zur Verfügung steht. Dies setzt voraus, dass das Modul eine gut definierte, stabile Beschreibung erhalten hat (die Schnittstelle im Sinne von Informationen versteckt).
Zu der Zeit, als Meyer schrieb und in einer Bibliothek in einer Bibliothek Felder oder Funktionen hinzufügte, erforderte zwangsläufig Änderungen an Programmen, die je nach dieser Bibliothek. Meyers vorgeschlagene Lösung für dieses Dilemma stützte sich auf den Begriff objektorientierter Begriff Nachlass (speziell Implementierung Vererbung):[1]: 229
Eine Klasse ist geschlossen, da sie zusammengestellt und in einer Bibliothek gespeichert werden kann. baseliniertund von Client -Klassen verwendet. Es ist aber auch offen, da jede neue Klasse sie als übergeordnete Verwendung verwenden kann und neue Funktionen hinzufügt. Wenn eine Nachkommenklasse definiert ist, besteht nicht erforderlich, das Original zu ändern oder ihre Kunden zu stören.
Polymorphes offenes Prinzip
In den neunziger Jahren wurde das offene Prinzip im Volksmund neu definiert, um sich auf die Verwendung von zu beziehen abstrahiert Schnittstellen, wo die Implementierungen geändert werden können und mehrere Implementierungen erstellt werden können und polymorph gegenseitig ersetzt.
Im Gegensatz zu Meyers Verwendung befürwortet diese Definition die Vererbung von Abstrakte Basisklassen. Schnittstellenspezifikationen können durch Vererbung wiederverwendet werden, es müssen jedoch nicht der Fall sein. Die vorhandene Schnittstelle ist für Änderungen geschlossen und neue Implementierungen müssen mindestens diese Schnittstelle implementieren.
Robert C. Martin's 1996 Artikel "The Open-Close-Prinzip"[2] war eine der wegweisenden Schriften, um diesen Ansatz zu verfolgen. In 2001 Craig Larman verwandte das offene Prinzip des offenen und das Muster durch Alistair Cockburn genannt Geschützte Variationenund zur David Parnas Diskussion über Informationen verstecken sich.[3]
Siehe auch
- FEST - Das "O" in "solid" repräsentiert das offene Prinzip
- Robustheitsprinzip
Verweise
- ^ a b c Meyer, Bertrand (1988). Objektorientierte Softwarekonstruktion. Prentice Hall. ISBN 0-13-629049-3.
- ^ a b Robert C. Martin "Das offene Prinzip", ",", C ++ - Bericht, Januar 1996 Archiviert 22. August 2006 bei der Wayback -Maschine
- ^ Larman, Craig (Mai - Juni 2001). "Geschützte Variation: Die Wichtigkeit, geschlossen zu werden" (PDF). IEEE -Software. IEEE. 18 (2): 89–91.