Liskov Substitutionsprinzip und Streams
Tut die Tatsache, dass es gibtStrom abgeleitete Klassen, die nicht geschrieben oder gesucht werden können, verstoßen gegen das Liskov-Substitutionsprinzip?
Zum Beispiel dieNetworkStream kann nicht gesucht werden, es wird ein werfenNotSupportedException
wenn die MethodeSeek
wird genannt.
Oder weil die Existenz vonCanSeek
Flagge ist es in Ordnung?
In Anbetracht des bekannten Beispiels vonSquare
erben vonRectangle
... würde die Hinzufügung der FahnenDoesHeightAffectsWidth
undDoesWidthAffectsHeight
zuRectangle
das Problem beheben?
Öffnet dies nicht die Tür zum Reparieren von Dingen durch Hinzufügen von Flaggen?