S.O.L.I.D na prática: Liskov Substitution Principle (LSP)
Neste post veremos o Liskov Substitution Principle (LSP) – Princípio de Substituição de Liskov, que corresponde a terceira letra do acrônimo SOLID.
Chegamos ao quarto post da série sobre os 5 princípios SOLID.
O que é o Liskov Substitution Principle (LSP)?
O Princípio de Substituição de Liskov, diz que (calma que no início essa definição pode bugar sua cabeça mesma 😀 ):
“Se, para cada objeto o1 do tipo S há um objeto o2 de tipo T, de modo que, para todos os programas P definidos em termos de T, o comportamento de P não seja modificado quando o1 for substituído por o2, então S é um subtipo de T”.
Barbara Liskov, 1988
O conceito talvez tenha ficado mais popular na definição de Robert C. Martin (Uncle Bob):
“Classes derivadas devem poder ser substituídas por suas classes base”.
Em outras palavras, esse princípio nos orienta sobre o conceito de substituição de objetos (classes), considerando a relação hierárquica existente entre os objetos.
De certa forma, podemos dizer que essa abordagem nos ajuda a validar o comportamento de um subtipo ou que se um objeto (ou classe) pode ou não ser considerado um Subtipo de um determinado Tipo.
Portanto o termo “substituição” vem basicamente do questionamento se um objeto filho (derivado) pode ou não ser substituído pelo seu objeto pai (classe base) correspondente.
No vídeo a seguir falo sobre todas essas definições e mostro exemplos de violações e adequações ao Princípio da Substituição de Liskov (LSP). Também relaciono com outros conceitos fundamentais da Orientação a Objetos, como a Herança e o Polimorfismo, por exemplo.
Vídeo sobre o LSP do canal
Se quiser entender melhor sobre as principais motivações de compreendermos estes princípios e ter a visão geral sobre essa série de posts, acesse o primeiro artigo da série pelo link a seguir:
Clique aqui caso queira acessar o primeiro post da série sobre SOLID