Принцип открытости/закрытости (Open/Closed Principle, OCP) — один из пяти принципов SOLID объектно-ориентированного проектирования. Он гласит, что программные сущности (классы, модули, функции и т.д.) должны быть открыты для расширения, но بسته для модификации.
Это означает, что поведение модуля можно расширять, не изменяя его исходный код. Вместо прямого изменения существующего кода для добавления новой функциональности следует создавать новый код, взаимодействующий с существующим.
Ключевые идеи:
Применение OCP часто достигается с использованием:
Пример на Swift:
Без OCP:
swift
С OCP:
swift
Применение OCP fosters более гибкую, поддерживаемую и расширяемую кодовую базу, так как добавление новой функциональности минимизирует риск нарушения существующего кода.