Junior — Middle
Kannst du ein Beispiel dafür geben, wie das Liskovsche Substitutionsprinzip in der Programmierung angewendet wird?
sobes.tech KI
Antwort von AI
Das Liskov-Substitutionsprinzip (Liskov Substitution Principle, LSP) besagt, dass Objekte einer Unterklasse ohne Verletzung der Korrektheit des Programms durch Objekte der Basisklasse ersetzt werden können.
Beispiel in JavaScript (Node.js):
class Bird {
fly() {
console.log('Vogel fliegt');
}
}
class Sparrow extends Bird {
fly() {
console.log('Spatz fliegt');
}
}
class Ostrich extends Bird {
fly() {
throw new Error('Strauss kann nicht fliegen');
}
}
function makeBirdFly(bird) {
bird.fly();
}
const sparrow = new Sparrow();
makeBirdFly(sparrow); // Spatz fliegt
const ostrich = new Ostrich();
makeBirdFly(ostrich); // Fehler — Verletzung des LSP
Hier verletzt die Klasse Ostrich das Liskov-Substitutionsprinzip, da die Unterklasse das Verhalten der Basisklasse (die Methode fly) nicht unterstützt. Um das LSP einzuhalten, ist es besser, Klassen in fliegende und nicht-fliegende Vögel zu unterteilen, z.B. durch Schnittstellen oder separate Basisklassen.