SOLID (3/5)
Tags: SOLID, LSP
Um dos conceitos mais solicitados hoje no mundo do desenvolvimento é o conhecimento de SOLID. Nesse post, vamos explorar o LSP - Liskov Substitution Principle.
O LSP, ou Princípio de Substituição de Liskov, Foi criado por Barbara Liskov em 1987. Esse princípio diz que objetos de uma classe derivada deve poder substituir objetos da classe base sem alterar o comportamento esperado do programa.
Ou seja se uma classe Pessoa é uma classe base e temos uma classe Funcionario que herda de Pessoa, então podemos substituir um objeto do tipo Pessoa por um objeto do tipo Funcionario sem que o comportamento esperado do programa seja alterado.
public class Pessoa {
public string Nome { get; set; }
}
public class Funcionario : Pessoa {
public string Cargo { get; set; }
}
public class Cliente : Pessoa {
public string Email { get; set; }
}
public class TesteLSP {
public void Exemplo() {
Pessoa pessoa = new Funcionario();
pessoa.Nome = "João";
// Comportamento esperado, não altera o comportamento do programa
Console.WriteLine(pessoa.Nome);
}
}
Porém, além de herança, o LSP também se aplica a interfaces. Se uma classe implementa uma interface, ela deve ser capaz de substituir qualquer implementação dessa interface sem alterar o comportamento esperado do programa.
public interface IPessoa {
string Nome { get; set; }
void ExibirNome();
}
public class Funcionario : IPessoa {
public string Nome { get; set; }
public void ExibirNome() {
Console.WriteLine(Nome);
}
}
public class Cliente : IPessoa {
public string Nome { get; set; }
public void ExibirNome() {
Console.WriteLine(Nome);
}
}
public class TesteLSP {
public void Exemplo() {
var pessoas = new List<IPessoa>();
pessoas.Add(new Funcionario { Nome = "João" });
pessoas.Add(new Cliente { Nome = "Maria" });
foreach (var pessoa in pessoas) {
pessoa.ExibirNome();
}
}
}
Apesar do exemplo ser bastante simples, podemos ver que o LSP é fundamental para um código flexível e reutilizável.
por Flávio José Formis,
01/08/2025
Aqui estão algumas recomendações relacionadas ao conteúdo. Esses itens podem ser comprados na Amazon com o meu link de associado.
Versão Kindle
Código Limpo: Habilidades Práticas do Agile Software
LEITURA OBRIGATÓRIA! O livro clássico sobre boas práticas de desenvolvimento de software, escrito por Robert C. Martin (conhecido como Uncle Bob). Ele aborda princípios, padrões e práticas para escrever código limpo e de fácil manutenção. Uma leitura essencial para qualquer desenvolvedor ou arquiteto de software.
Livro Físico
Código Limpo: Habilidades Práticas do Agile Software
LEITURA OBRIGATÓRIA! O livro clássico sobre boas práticas de desenvolvimento de software, escrito por Robert C. Martin (conhecido como Uncle Bob). Ele aborda princípios, padrões e práticas para escrever código limpo e de fácil manutenção. Uma leitura essencial para qualquer desenvolvedor ou arquiteto de software.
Versão Kindle
Arquitetura Limpa: o Guia do Artesão Para Estrutura e Design de Software
LEITURA OBRIGATÓRIA! O livro clássico sobre arquitetura de software, escrito por Robert C. Martin (conhecido como Uncle Bob). Ele aborda princípios, padrões e práticas para criar arquiteturas de software limpas, flexíveis e de fácil manutenção. Uma leitura essencial para qualquer arquiteto de software.
Livro Físico
Arquitetura Limpa: o Guia do Artesão Para Estrutura e Design de Software
LEITURA OBRIGATÓRIA! O livro clássico sobre arquitetura de software, escrito por Robert C. Martin (conhecido como Uncle Bob). Ele aborda princípios, padrões e práticas para criar arquiteturas de software limpas, flexíveis e de fácil manutenção. Uma leitura essencial para qualquer arquiteto de software.
Confira minhas recomendações de livros e outros itens na página de recomendações.