Sobes.tech
Junior — Middle

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.