Czym jest zasada otwarte-zamknięte (OCP)?

Zasada Otwarte / Zamknięte Zasadyjest najprostszą zasadą projektowania w świecie rozwoju oprogramowania. Wskazuje nam, jak zbudować stabilny i elastyczny system.

Definicja:

Jednostka oprogramowania, taka jak klasa, moduł i funkcja, powinna być otwarta na rozszerzenia i zamknięta na modyfikacje.

Znaczenie zasady otwierania i zamykania polega na tym, że jednostka oprogramowania powinna być rozszerzana w celu wprowadzenia zmian, a nie poprzez modyfikację istniejącego kodu.

Zasada otwierania i zamykania to zasada, która ogranicza bieżący rozwój i projektowanie dla przyszłych rzeczy jednostki oprogramowania.

Uwaga: Zasada otwierania i zamykania jest otwarta na rozszerzenia i zamknięta na modyfikacje. Nie oznacza to, że nie będą dokonywane modyfikacje. Zmiany w modułach niskiego poziomu muszą być powiązane z modułami wysokiego poziomu, w przeciwnym razie będzie to izolowany i bezsensowny fragment kodu.

Znaczenie zasady otwierania i zamykania:

  • Wpływ zasad otwierania i zamykania na testowanie

Zasada otwierania i zamykania polega na tym, aby oryginalny kod testowy nadal mógł działać normalnie, musimy tylko przetestować rozszerzony kod.

  • Zasada otwierania i zamykania może poprawić ponowne wykorzystanie

W projektowaniu obiektowym, cała logika jest łączona z logiki atomowej, zamiast wdrażać logikę biznesową w klasie niezależnie. Tylko w ten sposób kod może być ponownie wykorzystywany. Im mniejsza granularność, tym większa możliwość ponownego wykorzystania.

  • Zasada otwarte-zamknięte może poprawić utrzymanie
  • Wymagania dotyczące rozwoju obiektowego

Jak stosować zasadę otwierania i zamykania:

Po pierwsze, ogranicz rozszerzenie poprzez interfejs lub klasę abstrakcyjną, ogranicz rozszerzenie granicy i nie pozwalaj na publiczne metody, które nie istnieją w interfejsie lub klasie abstrakcyjnej;

Po drugie, staraj się używać interfejsów lub klas abstrakcyjnych dla typów parametrów i obiektów referencyjnych zamiast klas implementacyjnych;

Po trzecie, warstwa abstrakcji powinna być utrzymywana tak stabilnie, jak to możliwe, po jej potwierdzeniu nie są dozwolone modyfikacje.

Enkapsulacja zmian ma dwa znaczenia:

Po pierwsze, enkapsuluj te same zmiany w interfejsie lub klasie abstrakcyjnej;

Po drugie, enkapsuluj różne zmiany w różnych interfejsach lub klasach abstrakcyjnych. Dwie różne zmiany nie powinny występować w tym samym interfejsie lub klasie abstrakcyjnej.


Przykłady

Przykład, otwieranie i zamykanie drzwi ręcznie.

Jeśli pojawi się nowe zapotrzebowanie, konieczne jest zwiększenie funkcji otwierania i zamykania szuflady ręcznie. W kodzie musisz dodać klasę Szuflada i jednocześnie zmodyfikować klasę Ręka.

Podążając za przykładem zasady otwierania i zamykania OCP, otwieranie i zamykanie drzwi ręcznie zależy od interfejsu, a konkretna klasa implementacyjna wdraża ten interfejs.

Gdy konieczne jest zwiększenie liczby rąk do otwierania i zamykania lodówki, klasa lodówki wdraża ten interfejs bez modyfikacji oryginalnej klasy Ręka i interfejsu.

Więcej zasobów dotyczących programowania obiektowego

Ten post dostępny jest również w Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文

Leave a Reply

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *