Junior — Middle
119
¿Puedes explicar el principio L de SOLID y su importancia en el diseño de código?
Empresas donde se preguntó
РедСофт
Respuesta de la IA
sobes.tech AI
El principio L de SOLID es el Principio de Sustitución de Liskov (Liskov Substitution Principle, LSP). Establece que los objetos de una subclase deben ser intercambiables con los objetos de la clase base sin romper la corrección del programa.
En términos simples, si la clase B hereda de la clase A, en cualquier lugar donde se utilice un objeto A, se puede sustituir por un objeto B, y el programa debe funcionar correctamente, sin cambiar su comportamiento.
Valor en el diseño:
- Asegura una herencia y polimorfismo correctos.
- Ayuda a evitar errores inesperados al ampliar la funcionalidad.
- Promueve la creación de arquitecturas flexibles y escalables.
Ejemplo en C++:
class Bird {
public:
virtual void fly() {
// implementación del vuelo
}
};
class Sparrow : public Bird {
// gorrión puede volar, todo bien
};
class Ostrich : public Bird {
public:
void fly() override {
throw std::logic_error("La avestruz no puede volar");
}
};
Aquí, Ostrich viola el principio LSP, ya que la subclase no soporta el comportamiento de la clase base. Es mejor diseñar la jerarquía de otra manera, por ejemplo, destacando una interfaz para aves que vuelan.