Встречается на собеседованиях • сегодня

Как соблюдается Open-Close Principle на практике

Принцип открытости/закрытости (OCP) соблюдается через проектирование, где сущности открыты для расширения, но закрыты для модификации. Основные подходы:

  1. Использование интерфейсов и абстрактных классов:
java
interface Shape {
    double area();
}

class Circle implements Shape {
    private double radius;
    // конструктор и реализация area()
}

class Square implements Shape {
private double side;
// конструктор и реализация area()
}

text

2. Применение паттернов:
- Стратегия (через композицию)
- Декоратор (для добавления поведения)
- Фабричный метод (для создания объектов)

3. Зависимость от абстракций, а не реализаций. Новый функционал добавляется через новые классы, а не изменение существующих.

Пример нарушения OCP:
```java
class AreaCalculator {
    public double calculate(Object shape) {
        if (shape instanceof Circle) {
            // расчет для круга
        } else if (shape instanceof Square) {
            // расчет для квадрата
        }
        // при добавлении новой фигуры нужно модифицировать этот класс
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы