PRINCIPLES
L - Liskov Substitution Principle
Le sottoclassi devono poter sostituire le superclassi senza rompere il programma. Il comportamento atteso deve essere preservato.
Esempi di Codice
PROBLEMA: Violazione LSP
Square viola il contratto di Rectangle. Comportamento inaspettato.
JAVASCRIPT
Loading...
SOLUZIONE: Rispetta LSP
Separate gerarchie o interfacce comuni. Comportamento consistente.
JAVASCRIPT
Loading...
Esempi nel Mondo Reale
Collections (List, Set) sostituibili nelle API
Stream processing (Reader, Writer con contratti comuni)
Payment gateways (interfaccia comune, implementazioni diverse)
Quando Usarlo
Quando crei gerarchie di classi
Per polimorfismo sicuro
Testing con mock/stub (devono sostituire oggetti reali)
Quando NON Usarlo
Composition over inheritance quando appropriato
Pattern Correlati