Das Offen/Geschlossen-Prinzip ist das grundlegendste Designprinzip in der Welt der Softwareentwicklung. Es leitet uns an, wie man ein stabiles und flexibles System aufbaut.
Definition:
Eine Softwareentität wie Klasse, Modul und Funktion sollte für Erweiterungen offen und für Modifikationen geschlossen sein.
Die Bedeutung des Prinzips des Öffnens und Schließens besteht darin, dass eine Softwareentität erweitert werden sollte, um eine Änderung zu erreichen, anstatt den bestehenden Code zu modifizieren, um eine Änderung zu erreichen.
Das Öffnungs- und Schließprinzip ist ein Prinzip, das die aktuelle Entwicklung und Gestaltung für die zukünftigen Dinge der Softwareeinheit einschränkt.
Hinweis: Das Prinzip des Öffnens und Schließens ist offen für Erweiterungen und geschlossen für Modifikationen. Das bedeutet nicht, dass keine Änderung vorgenommen wird. Änderungen in Low-Level-Modulen müssen mit High-Level-Modulen gekoppelt werden, da es sich sonst um ein isoliertes und bedeutungsloses Codefragment handelt.
Die Bedeutung des Prinzips des Öffnens und Schließens:
- Der Einfluss von Öffnungs- und Schließprinzipien auf das Testen
Das Prinzip des Öffnens und Schließens besteht darin, dass der ursprüngliche Testcode weiterhin normal ausgeführt werden kann, wir müssen nur den erweiterten Code testen.
- Das Prinzip des Öffnens und Schließens kann die Wiederverwendbarkeit verbessern
Beim objektorientierten Design wird die gesamte Logik aus der atomaren Logik kombiniert, anstatt eine Geschäftslogik in einer Klasse unabhängig zu implementieren. Nur so kann der Code wiederverwendet werden. Je kleiner die Granularität, desto größer die Möglichkeit der Wiederverwendung.
- Das offene und geschlossene Prinzip kann die Wartbarkeit verbessern
- Anforderungen an die objektorientierte Entwicklung
So verwenden Sie das Öffnungs- und Schließprinzip:
Beschränken Sie zunächst die Erweiterung durch die Schnittstelle oder abstrakte Klasse, begrenzen Sie die Erweiterung der Grenze und lassen Sie keine öffentlichen Methoden zu, die nicht in der Schnittstelle oder abstrakten Klasse vorhanden sind;
Versuchen Sie zweitens , Schnittstellen oder abstrakte Klassen für Parametertypen und Referenzobjekte anstelle von Implementierungsklassen zu verwenden;
Drittens sollte die Abstraktionsschicht so stabil wie möglich gehalten werden, sobald sie bestätigt ist, ist keine Änderung erlaubt.
Die Kapselung von Änderungen hat zwei Bedeutungen:
Kapseln Sie zuerst dieselben Änderungen in eine Schnittstelle oder abstrakte Klasse;
Zweitens kapseln Sie verschiedene Änderungen in verschiedenen Schnittstellen oder abstrakten Klassen ein. Zwei unterschiedliche Änderungen sollten nicht in derselben Schnittstelle oder abstrakten Klasse erscheinen.
Beispiele
Ein Beispiel, Türen von Hand öffnen und schließen.
Bei neuem Bedarf muss die Funktion des manuellen Öffnens und Schließens der Schublade erweitert werden. Für den Code müssen Sie eine Drawer-Klasse hinzufügen und gleichzeitig die Hand-Klasse ändern.
Nach dem Vorbild des OCP-Öffnungs- und Schließprinzips hängt das Öffnen und Schließen der Tür von Hand von einer Schnittstelle ab, und die spezifische Implementierungsklasse implementiert diese Schnittstelle.
Wenn es erforderlich ist, die Anzahl der Hände zum Öffnen und Schließen des Kühlschranks zu erhöhen, implementiert die Kühlschrankklasse diese Schnittstelle, ohne die ursprüngliche Hand-Klasse und -Schnittstelle zu ändern.
пройти соут соут официальный сайт