Встречается на собеседованиях • сегодня
Приведи пример нарушения принципа Open-Close
Принцип Open-Closed (OCP) гласит, что классы должны быть открыты для расширения, но закрыты для модификации. Нарушение - когда приходится изменять существующий код для добавления новой функциональности.
Пример нарушения:
java
class AreaCalculator {
public double calculate(Object shape) {
if (shape instanceof Circle) {
Circle c = (Circle) shape;
return Math.PI * c.radius * c.radius;
} else if (shape instanceof Square) {
Square s = (Square) shape;
return s.side * s.side;
}
throw new IllegalArgumentException("Unknown shape");
}
}Проблема: при добавлении новой фигуры (например, Triangle) нужно модифицировать метод calculate(), добавляя новый if-блок. Это нарушает OCP.
Решение: использовать полиморфизм через интерфейс Shape с методом area(), который реализуют все фигуры. Тогда AreaCalculator сможет работать с любыми фигурами без изменений.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы