Thread Liskovsches Sommerloch (19 answers)
Opened by rosti at 2025-06-25 09:13

rosti
 2025-06-27 09:02
#197084 #197084
User since
2011-03-19
3617 Artikel
BenutzerIn
[Homepage]
user image
2025-06-26T22:43:56 hlubenow
Wikipedia
Dann ließe sich nicht stets bedenkenlos ein Objekt vom Typ T durch ein Objekt vom Typ S ersetzen.

Na und, dann eben nicht.


Ganz schlechte Idee ;)


Um von Liskov mal in die Praxis zu kommen:

Methoden die in nur einer Subklasse gebraucht werden, haben in der Basisklasse nichts zu suchen.

Das heißt, daß eine Methode erst dann berechtigt ist einen Platz in der Basisklasse zu kriegen wenn sie in mehr als nur einer Subklasse benötigt wird. Andernfalls hätten wir das Problem mit redundanten Code.

Beispielsweise hat die $FH->open($file) Methode in der Basisklasse IO::Handle nichts zu suchen, weil die Basisklasse nur das Handle bedient und Dateien gar nicht kennt.

Andererseits darf es in einer Basisklasse File durchaus eine Methode $FH->getBOM geben obwohl es eine BOM nicht in jeder Datei gibt.


Das ist meine Auslegung und was die Vererbung von Eigenschaften betrifft, bin ich der Meinung daß man ansteller einer Solchen besser Konstanten definiert und exportiert. Der ganze objektorientierte Aufbau Perl im Core bestätigt, daß meine Ansichten zweckmäßig sind.


Schönes Wochenende.
Last edited: 2025-06-27 15:28:46 +0200 (CEST)
http://blog.rolfrost.de/

The art of steam.

View full thread Liskovsches Sommerloch