Junior — Middle
Что подразумевается под принципом открытости для расширения в объектно-ориентированном программировании?
sobes.tech AI
Answer from AI
The Open/Closed Principle in object-oriented programming means that software entities (classes, modules, functions) should be open for extension but closed for modification.
This means that the behavior of a system can be extended without changing the existing code, to avoid breaking its functionality and introducing errors.
For example, if you have a base class and need to add new functionality, it is better to create a new class that inherits from the base and extends it, rather than changing the original class.
Example in 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; }
}
// Adding a new shape type does not require changing existing classes
Thus, the code is easily extendable without breaking the already working functionality.