Принцип открытости/закрытости
Open-Closed Principle; OCP
Программные сущности должны быть открыты для расширения и закрыты для изменения.
Иными словами, должна иметься возможность расширять поведение программных сущностей без их изменения.
Что имеется ввиду под "закрыты для изменения"? Это значит, что функция или класс написаны и готовы к использованию. Больше дописываться они не будут. Их можно только исправлять (если была допущена ошибка). Новые фичи добавлять категорически нельзя.
Результат применения принципа единственной ответственности:

Самое важное, что нужно понять, — в данном примере в создание отчета вовлечены две отдельные ответственности:
- вычисление данных для отчета
- и представление этих данных в форме веб-отчета или распечатанного отчета.
Сделав такое разделение, мы должны организовать зависимости в исходном коде так, чтобы изменения в одной из ответственностей не вызывали необходимости изменений в другой. Кроме того, новая организация должна гарантировать возможность расширения поведения без отмены изменений.
Источники
Мартин Р. Чистая архитектура. Искусство разработки программного обеспечения.