Принцип открытости/закрытости (Open-Closed Principle, OCP) в SOLID-архитектуре гласит, что программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения. 12
Суть принципа: модификация поведения программы осуществляется только добавлением новых компонентов, новый функционал как бы наслаивается на старый. 3 После того как класс написан и протестирован, его код не должен изменяться при добавлении новой функциональности. 5
На практике OCP реализуется через наследование, интерфейсы, абстракции и полиморфизм: вместо изменения существующего кода добавляются новые классы и функции. 3
Пример: есть класс Shape с методом draw. 1 Если нужно добавить новую форму, не нужно изменять класс Shape. 1 Можно создать новый класс (например, Circle), который наследует от Shape и реализует метод draw. 1