Junior — Middle
106
Hogyan valósítható meg az nyitottság és zártság elve az objektumorientált programozásban?
Cégeket kérdeztek
Válasz az MI-től
sobes.tech MI
Принцип открытости/закрытости (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; }
}
// Теперь, чтобы добавить новую фигуру, например, треугольник, мы создаём новый класс, не меняя существующие.
Таким образом, расширение функционала происходит через добавление новых классов, а не изменение существующих.