Sobes.tech
Junior — Middle
105

Come implementare il principio di apertura e chiusura nella programmazione orientata agli oggetti?

Le aziende dove è stato chiesto
СБЕРСБЕР

Risposta dell'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; }
}

// Теперь, чтобы добавить новую фигуру, например, треугольник, мы создаём новый класс, не меняя существующие.

Таким образом, расширение функционала происходит через добавление новых классов, а не изменение существующих.