bg_image
header

Liskov Substitution Principle

Das Liskov Substitution Principle (LSP) ist ein weiteres fundamentales Prinzip der SOLID-Prinzipien in der objektorientierten Programmierung. Es wurde von der Informatikerin Barbara Liskov formuliert und legt die Bedingungen fest, unter denen Subtypen (Unterklassen) in einem Programm korrekt die Basistypen (Superklassen) ersetzen können.

Das Prinzip besagt, dass Objekte einer Basisklasse durch Objekte einer abgeleiteten (Unter-)Klasse ersetzt werden können, ohne die Funktionalität des Programms zu beeinträchtigen. Mit anderen Worten sollte ein Subtyp in der Lage sein, alle Verträge und Verhaltensweisen des Basistyps einzuhalten, ohne unerwartetes oder fehlerhaftes Verhalten zu verursachen.

Die Kernidee des Liskov Substitution Principle besteht darin, dass Subtypen eine erweiterebare Version der Basistypen sein sollten, wobei sie die gleichen Vorbedingungen (Eingabebedingungen) und Nachbedingungen (Ausgabebedingungen) erfüllen wie ihre Basistypen. Mit anderen Worten:

  1. Die Methodenaufrufe, die auf einem Objekt des Basistyps funktionieren, müssen auch auf einem Objekt eines Subtyps funktionieren, ohne dass der Aufrufer von der spezifischen Implementierung wissen muss.

  2. Die Rückgabewerte der Methoden eines Subtyps sollten mit den Rückgabewerten der entsprechenden Methoden des Basistyps kompatibel sein.

  3. Die Vorbedingungen (Eingabebedingungen) einer Methode eines Subtyps sollten nicht stärker sein als die Vorbedingungen der entsprechenden Methode des Basistyps.

  4. Die Nachbedingungen (Ausgabebedingungen) einer Methode eines Subtyps sollten nicht schwächer sein als die Nachbedingungen der entsprechenden Methode des Basistyps.

Eine korrekte Anwendung des LSP stellt sicher, dass der Code, der auf die Basisklasse zugreift, mit allen abgeleiteten Klassen funktioniert, ohne dass der Code modifiziert werden muss. Es verbessert die Flexibilität und Erweiterbarkeit des Codes und fördert eine konsistente und robuste Softwarearchitektur.

Nichteinhaltung des Liskov Substitution Principle kann zu schwerwiegenden Problemen führen, wie unerwartetem Verhalten, Laufzeitfehlern oder inkorrekten Ergebnissen, da die Annahmen über die Basisklasse nicht für die Subtypen gelten würden. Daher ist es wichtig, das LSP bei der Erstellung von Klassen und der Definition von Vererbungshierarchien sorgfältig zu beachten, um die Integrität und Funktionsweise des Programms zu gewährleisten.


Erstellt vor 2 Jahre
Design Patterns Objektorientierten Programmierung Prinzipien Programmierung

Hinterlasse einen Kommentar Antworten Abbrechen
* Erforderliches Feld