Принцип открытости/закрытости (Open/Closed Principle).
Он гласит, что программные сущности (классы, модули, функции и т. д.) должны быть открыты для расширения, но закрыты для модификации. Это означает, что новое поведение можно добавлять, не изменяя существующий код.
Пример реализации с использованием интерфейса:
php
В этом примере, если нужно добавить новый тип фигуры (например, треугольник), достаточно создать новый класс, реализующий интерфейс Shape. Класс AreaCalculator остается неизменным, соблюдая принцип закрытости для модификации.