Sobes.tech
Junior — Middle

Können Sie das L-Prinzip aus SOLID und seine Bedeutung bei der Code-Entwicklung erklären?

sobes.tech KI

Antwort von AI

Das Prinzip L von SOLID ist das Liskovsche Substitutionsprinzip (Liskov Substitution Principle, LSP). Es besagt, dass Objekte einer Unterklasse austauschbar mit Objekten der Basisklasse sein sollten, ohne die Korrektheit des Programms zu verletzen.

Kurz gesagt, wenn Klasse B von Klasse A erbt, kann überall, wo ein Objekt A verwendet wird, dieses durch ein Objekt B ersetzt werden, und das Programm sollte korrekt funktionieren, ohne sein Verhalten zu ändern.

Wert bei der Gestaltung:

  • Gewährleistet korrektes Erben und Polymorphismus.
  • Hilft, unerwartete Fehler bei der Erweiterung der Funktionalität zu vermeiden.
  • Fördert die Erstellung flexibler und erweiterbarer Architekturen.

Beispiel in C++:

class Bird {
public:
    virtual void fly() {
        // Flugimplementierung
    }
};

class Sparrow : public Bird {
    // Spatz kann fliegen, alles in Ordnung
};

class Ostrich : public Bird {
public:
    void fly() override {
        throw std::logic_error("Strauß kann nicht fliegen");
    }
};

Hier verletzt Ostrich das LSP, da die Unterklasse das Verhalten der Basisklasse nicht unterstützt. Es ist besser, die Hierarchie anders zu gestalten, z.B. eine Schnittstelle für fliegende Vögel zu definieren.