¿Qué se entiende por el principio de apertura/cierre en la programación orientada a objetos?
sobes.tech AI
Respuesta de la IA
El principio de abierto/cerrado en programación orientada a objetos significa que las entidades de software (clases, módulos, funciones) deben estar abiertas para la extensión, pero cerradas para la modificación. Esto significa que el comportamiento del sistema puede extenderse sin cambiar el código existente, lo que reduce el riesgo de errores y facilita el mantenimiento.
Por ejemplo, si necesitas agregar una nueva funcionalidad, es mejor crear una nueva clase que extienda la existente en lugar de modificar directamente la clase original. En C++, esto se logra a menudo mediante herencia y polimorfismo:
class Shape {
public:
virtual double area() const = 0; // método abstracto
};
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; }
};
Si necesitas agregar una nueva figura, por ejemplo, un triángulo, basta con crear una nueva clase Triangle sin cambiar las clases existentes.