Back to questions
СБЕР
Junior — Middle
65
Каким образом реализовать принцип открытости и закрытости в объектно-ориентированном программировании?
Companies where asked
Answer from AI
sobes.tech AI
Принцип открытости/закрытости (Open/Closed Principle) в объектно-ориентированном программировании означает, что программные сущности (классы, модули, функции) должны быть открыты для расширения, но закрыты для модификации. Это значит, что поведение системы можно расширять без изменения уже существующего кода.
Реализуется это, например, через использование абстракций и наследования. Вместо изменения существующего класса, создают новый класс, который расширяет функциональность базового.
Пример на Java:
interface Shape {
double area();
}
class Rectangle implements Shape {
private double width, height;
public Rectangle(double w, double h) { width = w; height = h; }
public double area() { return width * height; }
}
class Circle implements Shape {
private double radius;
public Circle(double r) { radius = r; }
public double area() { return Math.PI * radius * radius; }
}
// Теперь, чтобы добавить новую фигуру, например, треугольник, мы создаём новый класс, не меняя существующие.
Таким образом, расширение функционала происходит через добавление новых классов, а не изменение существующих.