Встречается на собеседованиях • сегодня
Что такое принцип открытости/закрытости (Open-Closed Principle)
Принцип открытости/закрытости (OCP) гласит: классы должны быть открыты для расширения, но закрыты для модификации. Это означает, что поведение класса можно менять через наследование или композицию, не изменяя его исходный код.
Пример нарушения OCP:
java
class Rectangle {
double width;
double height;
}
class AreaCalculator {
double calculate(Object shape) {
if (shape instanceof Rectangle) {
Rectangle r = (Rectangle) shape;
return r.width * r.height;
}
// При добавлении нового типа нужно менять код
}
}
text
Правильный подход:
```java
interface Shape {
double calculateArea();
}
class Rectangle implements Shape {
double width, height;
public double calculateArea() { return width * height; }
}
class Circle implements Shape {
double radius;
public double calculateArea() { return Math.PI * radius * radius; }
}
// Новые фигуры добавляются без изменения существующего кода
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы