La documentazione afferma chiaramente che le interfacce che restituiscono null o generano un'eccezione si comportano come previsto.
Pertanto tali interfacce non interrompono l'LSP, poiché si comportano come previsto. Se la documentazione dicesse che "le interfacce non restituiscono mai null", un'interfaccia che restituisce null viola l'LSP. Poiché la documentazione dice esattamente l'opposto, restituire null va bene.
Penso che sia necessario abituarsi al fatto che l'LSP è destinato a fornire agli sviluppatori qualcosa di utile . desideriamo un comportamento diverso durante l'esecuzione dei contratti. Ho l'impressione che tu andassi in un negozio di bricolage e ti lamentassi di avere colori diversi, perché le vernici in diversi colori violano l'LSP. No, non lo fanno. Mi lamento con il progettista dell'interfaccia utente che sostituendo un pulsante verde con un pulsante blu viola l'LSP? No, non lo so. Hanno un aspetto diverso, ma possono essere sostituiti l'uno con l'altro. Se l'LSP non lo permettesse, francamente nessuno saprebbe cosa significano le lettere e non ci sarebbe alcuna voce su Wikipedia, perché sarebbe inutile.