Pouvez-vous expliquer le principe L de SOLID et son importance dans la conception du code?
sobes.tech IA
Réponse de l'IA
Le principe L de SOLID est le principe de substitution de Liskov (Liskov Substitution Principle, LSP). Il stipule que les objets d’une sous-classe doivent pouvoir être échangés avec ceux de la classe de base sans rompre la correction du programme.
En termes simples, si la classe B hérite de la classe A, partout où un objet A est utilisé, il peut être remplacé par un objet B, et le programme doit fonctionner correctement, sans changer son comportement.
Valeur lors de la conception :
- Assure une héritage et un polymorphisme corrects.
- Aide à éviter des erreurs inattendues lors de l’extension de la fonctionnalité.
- Favorise la création d’architectures flexibles et évolutives.
Exemple en C++ :
class Bird {
public:
virtual void fly() {
// implémentation du vol
}
};
class Sparrow : public Bird {
// moineau peut voler, tout va bien
};
class Ostrich : public Bird {
public:
void fly() override {
throw std::logic_error("L’autruche ne peut pas voler");
}
};
Ici, Ostrich viole le principe LSP, car la sous-classe ne supporte pas le comportement de la classe de base. Il est préférable de concevoir la hiérarchie autrement, par exemple en distinguant une interface pour les oiseaux volants.