Pular para o conteúdo principal

SOLID - Liskov Substitution Principle (LSP)

SOLID

Versão clássica 88 - Se, para cada objeto o1o_1 do tipo SS, existir um objeto o2o_2 do tipo T de modo que para todos os programas PP definidos em termo de TT o comportamento de PP é inalterado quando substituímos o1o_1 por o2o_2. Então, SS é um subtipo de TT.

Versão mais facil 94 - Seja ϕ(x)\phi(x) alguma propriedade provável de objetos xx do tipo TT. Então, deve ser verdade que ϕ(y)\phi(y) para todos os objetos yy do tipo SS quando SS for um subtipo de TT.

Versão para burros - Subclasses devem ser substitutos válidos para suas superclasses.

Aqui vale destacar que a maioria das traduções literais aponta que a classe pai deve ser capaz de substituir a classe filha. Mas o foco é o contrário.

Como Uncle bob mesmo explica: Se temos uma função ff que recebe como argumento a classe BB e passamos no lugar uma classe DD que é derivada de BB. A função ff não deve mudar seu comportamento.

Referências