Principio di sostituzione di Liskov
Da Wikipedia, l'enciclopedia libera.
Nella programmazione orientata agli oggetti il principio di sostituzione di Liskov è una particolare definizione di sottotipo, introdotta da Barbara Liskov e Jeannette Wing nel 1993.
La formulazione sintetica del principio è la seguente:
"Se q(x) è una proprietà che si può dimostrare essere valida per oggetti x di tipo T, allora q(y) deve essere valida per oggetti y di tipo S dove S è un sottotipo di T."
Questa nozione di sottotipo è quindi basata sulla nozione di sostituibilità secondo cui, se S è un sottotipo di T, allora oggetti dichiarati in un programma di tipo T possono essere sostituiti con oggetti di tipo S senza alterare i la correttezza dei risultati del programma.
Nella metodologia di programmazione chiamata progettazione per contratto (Design by contract), questo principio pone alcuni vincoli sulle modalità con cui i contratti possono interagire con l'ereditarietà:
- i prerequisiti richiesti ad una superclasse devono essere almeno altrettanto vincolanti di quelli richiesti alle sottoclassi;
- le postcondizioni e gli invarianti in una sottoclasse devono essere almeno altrettanto vincolanti di quelle delle sue superclassi.
Inoltre il principio non ammette la presenza di eccezioni nelle sottoclassi.