Sobes.tech
Back to questions
Junior — Middle
80

Какой принцип SOLID касается открытости и закрытости программных модулей для изменений?

Answer from AI

sobes.tech AI

Принцип SOLID, который касается открытости и закрытости программных модулей для изменений, называется принципом открытости/закрытости (Open/Closed Principle, OCP). Он гласит, что программные сущности (классы, модули, функции) должны быть открыты для расширения, но закрыты для модификации. Это означает, что поведение модуля можно расширять без изменения его исходного кода, что повышает устойчивость и удобство сопровождения кода.

Пример на C++:

class Shape {
public:
    virtual double area() const = 0;
    virtual ~Shape() {}
};

class Rectangle : public Shape {
    double width, height;
public:
    Rectangle(double w, double h) : width(w), height(h) {}
    double area() const override { return width * height; }
};

class Circle : public Shape {
    double radius;
public:
    Circle(double r) : radius(r) {}
    double area() const override { return 3.14159 * radius * radius; }
};

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