Eu estava no seu lugar há alguns meses até encontrar um artigo muito útil.
Cada princípio é bem explicado com situações do mundo real que cada desenvolvedor de software pode enfrentar em seus projetos. Eu estou cortando curto aqui e apontando para a referência - S.O.L.I.D. Desenvolvimento de software, um passo de cada vez .
Como apontado nos comentários, há outra ótima leitura em pdf - Software SOLID da Pablo Desenvolvimento .
Além disso, há alguns bons livros que descrevem os princípios do SOLID em mais detalhes - Good Book on SOLID Software Development .
Editar e comentários de um breve resumo para cada princípio:
-
“S” - O princípio da responsabilidade única é impulsionado pelas necessidades do negócio para permitir mudanças. “Um único motivo para mudar” ajuda você a entender quais conceitos separados logicamente devem ser agrupados considerando o conceito e o contexto do negócio, em vez do conceito técnico sozinho.
In another words
, aprendi que cada classe deve ter uma única responsabilidade. A responsabilidade é apenas realizar a tarefa atribuída -
“O” - Aprendi Open Closed Principle e comecei a "preferir composição sobre herança" e, como tal, preferir classes que não possuem métodos virtuais e são possivelmente seladas, mas dependem de abstrações para sua extensão.
-
"L" - Aprendi o Princípio de Substituição de Liskov com a ajuda do padrão Repositório para gerenciar o acesso a dados.
- “I” - Aprendi sobre o Princípio de Segregação de Interface aprendendo que os clientes não devem ser forçados a implementar interfaces que não usam (como no Provedor de Associação no ASP.NET 2.0). Então interface não deveria ter “muitas responsabilidades”
- “D” - Aprendi sobre o Princípio de Inversão de Dependência e comecei a codificar que é fácil mudar . Mais fácil de mudar significa um custo total de propriedade mais baixo e maior facilidade de manutenção.
Como um recurso útil do CodePlex foi mencionado nos comentários, a referência está incluída no SOLID pelo exemplo