1. S — Single Responsibility Principle (Responsabilidade Única)Uma classe deve ter apenas uma única responsabilidade e, portanto, uma única razão para mudar.
✔ Bom exemplo:
Uma classe RelatorioFinanceiro
que só gera relatórios.
❌ Mau exemplo:
Uma classe que gera relatório, envia por e-mail e salva no banco de dados.
🧠 Dica: se sua classe faz mais de uma coisa, talvez esteja na hora de dividir em partes menores.
2. O — Open/Closed Principle (Aberto/Fechado)“Entidades devem estar abertas para extensão, mas fechadas para modificação.”
Ou seja, você deve conseguir adicionar novos comportamentos sem alterar o código existente.
✔ Bom exemplo:
Uma interface Pagamento
com várias implementações (Cartao
, Pix
, Boleto
) que podem ser usadas sem mudar a lógica principal.
🧠 Dica: use interfaces e abstrações!
3. L — Liskov Substitution Principle (Substituição de Liskov)Objetos de uma classe derivada devem ser substituíveis por objetos da classe base sem quebrar o sistema.
❌ Mau exemplo:
Uma classe Pato
e uma subclasse PatoDeBorracha
que sobrescreve o método voar()
para lançar exceção.
✔ Correto:
Use uma interface Voavel
apenas onde voar faz sentido.
4. I — Interface Segregation Principle (Segregação de Interface)Nenhuma classe deve ser forçada a depender de métodos que não usa.
✔ Bom exemplo:
Interfaces pequenas e específicas, como IImprimivel
, ISerializavel
, etc.
❌ Mau exemplo:
Uma interface gigante chamada IServicoGeral
com 10 métodos onde cada classe implementa só 2 ou 3.
5. D — Dependency Inversion Principle (Inversão de Dependência)Dependa de abstrações, não de implementações.
Em vez de instanciar diretamente suas dependências com new
, você injeta elas via construtor, factory ou injeção de dependência.
✔ Bom exemplo:
ts
CopiarEditar
constructor(private pagamentoService: PagamentoServiceInterface) {}
🧠 Dica: isso facilita testes, troca de implementações e mantém seu código desacoplado.
🎯 Conclusão
Os princípios SOLID não são regras rígidas, mas guias que te ajudam a escrever código mais limpo e sustentável.Comece aplicando aos poucos — quanto mais você pratica, mais natural eles se tornam.
Se curtiu esse conteúdo, compartilha com alguém que tá querendo escrever código melhor! 🚀