Das Liskov Substitution Principle (LSP) ist das SOLID-Prinzip, verbunden mit Barbara Liskov und Robert C. Martin, nach dem Subtypen ihre Basistypen ersetzen können müssen, ohne die Korrektheit des Programms zu verändern. Abgeleitete Klassen halten die Verträge ihrer Basisklassen ein. Verletzungen zeigen sich in Überschreibungen, die erwartetes Verhalten brechen, in Typprüfungen im Client-Code oder in Hierarchien, die die Ist-ein-Beziehung verletzen.
SOLID-Liskov Substitution Principle
Details
- Vollständiger Name
-
SOLID Liskov Substitution Principle (LSP)
Absicht:
Subtypen müssen durch ihre Basistypen ersetzbar sein, ohne die Korrektheit des Programms zu verändern. Abgeleitete Klassen müssen die Verträge ihrer Basisklassen einhalten.
Wann zu verwenden:
-
Überschreibungen in Unterklassen brechen das erwartete Verhalten der Basisklasse
-
instanceof-/Typprüfungen erscheinen im Client-Code
-
Vererbungshierarchien verletzen "ist-ein"-Beziehungen
Prompt-Beispiel:
"Überprüfe diese Vererbungshierarchie auf Verletzungen des SOLID-Liskov Substitution Principle."
Verwandte Anker:
-
SOLID Principles (Umbrella)