OCP (Open Closed Principle)


ocp программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения.

Принцип OCP говорит о том что, программные сущности должны быть:

  • открыты для расширения: это означает, что поведение модуля может быть расширено. Когда требования приложения изменяются, мы способны расширить модуль новыми линиями поведения, которые удовлетворяют возникшим изменениям.

    Другими словами, у нас есть возможность расширять классы, делая их более функциональными. При этом поведение старых методов не меняется, как и самого класса в целом.

  • закрыты для изменения/модификации: в результате расширения поведения сущности, не должны вноситься изменения в код, который эти сущности использует.


Это особенно важно для боевого кода в производственной среде:

  • любые изменения в исходном коде, требуют за собой пересмотр всего кода, где используется данная сущность/класс.

  • пересмотр модульного тестирования и других подобных процедур.

Код, подчиняющийся данному принципу, не изменяется при расширении и поэтому не требует таких трудозатрат.


Read More: