Leçon 3 : LSP et contrats comportementaux
Tu as remplacé une implémentation par une autre — et le système s'est effondré, alors que le compilateur était parfaitement satisfait. Par exemple : un PreviewExporter qui ressemble en tout point à un Exporter, mais lève une exception précisément sur les grandes listes utilisées en production. Cette
LSP, c'est comme les piles de rechange : toute pile AA doit fonctionner dans chaque appareil conçu pour AA. Une pile qui rentre dans le compartiment mais grille la télécommande a rompu la promesse.
- principe de substitution de Liskov (LSP)
- Tout sous-type doit fonctionner partout où son type de base est attendu — sans surprises pour l'appelant.
- contrat comportemental
- Les promesses d'une méthode au-delà de sa signature : quelles entrées sont valides, ce que garantit la sortie et quelles erreurs peuvent survenir.