Open-Closed-Prinzip
# Open-Closed-Prinzip

Das Open-Closed-Prinzip (Prinzip der Offen- und Verschlossenheit, kurz OCP) ist ein Prinzip beim objektorientierten Entwurf von Software. Es beschäftigt sich mit der Erweiterbarkeit von bestehender Software.
Bertrand Meyer beschreibt das Open-Closed-Prinzip durch:
   “Modules should be both open (for extension) and closed (for modification).”
   „Module sollten sowohl offen (für Erweiterungen) als auch verschlossen (für Modifikationen) sein.“
Mit Modulen sind hier Software-Einheiten gemeint, bei welchen es sich sowohl um Module als auch Klassen, Methoden etc. handeln kann.
Eine Erweiterung im Sinne des Open-Closed-Prinzips ist beispielsweise die Vererbung. Diese verändert das vorhandene Verhalten der Einheit nicht, erweitert aber die Einheit um zusätzliche Funktionen oder Daten. Überschriebene Methoden verändern auch nicht das Verhalten der Basisklasse, sondern nur das der abgeleiteten Klasse. Folgt man darüber hinaus dem Liskovschen Substitutionsprinzip, verändern auch überschriebene Methoden nicht das Verhalten, sondern nur die Algorithmen.