SOLID Principles
Os 5 principios fundamentais de design orientado a objetos para codigo limpo, extensivel e testavel em C#/.NET
SOLID e um acronimo criado por Robert C. Martin (Uncle Bob). Cada letra representa um principio que, quando aplicado corretamente, torna o codigo mais manutenivel, testavel e extensivel. Em entrevistas .NET, espere perguntas sobre cada principio com exemplos praticos.
Os 5 Principios
| Letra | Principio | Resumo | Beneficio |
|---|---|---|---|
| S | Single Responsibility | Uma classe deve ter apenas um motivo para mudar | Menos acoplamento, mais coesao |
| O | Open/Closed | Aberto para extensao, fechado para modificacao | Adicionar comportamento sem quebrar existente |
| L | Liskov Substitution | Subtipos devem ser substituiveis pelo tipo base | Hierarquias corretas, sem surpresas |
| I | Interface Segregation | Interfaces especificas sao melhores que uma generica | Clientes nao dependem do que nao usam |
| D | Dependency Inversion | Dependa de abstracoes, nao de implementacoes | Desacoplamento total, testabilidade |
Como os principios se conectam
Os principios SOLID nao sao independentes. SRP cria classes pequenas e focadas. OCP garante que voce estenda sem modificar. LSP valida que hierarquias de heranca fazem sentido. ISP evita interfaces inchadas. DIP conecta tudo via abstracoes, habilitando DI containers como o do ASP.NET Core.
Por que SOLID e importante em projetos .NET Enterprise?
Em projetos grandes, SOLID reduz o custo de mudanca. SRP significa que uma alteracao no calculo de imposto nao afeta o envio de email. OCP permite adicionar novos tipos de pagamento sem tocar no processador existente. DIP permite trocar o banco de dados de SQL Server para PostgreSQL sem alterar a camada de dominio. Na pratica, SOLID e o que torna Clean Architecture e DDD possiveis.