Na programação de computadores orientada a objetos, o termo SOLID é um acrônimo para cinco postulados de design, destinados a facilitar a compreensão, o desenvolvimento e a manutenção de software.
Separar uma classe, em várias pequenas classe para o seu código ter “coesão” e a classe ter uma única responsabilidade, assim uma hora que precisar dar manutenção será algo muito mais fácil.
“Uma classe deveria ter apenas um único motivo para mudar” - Uncle Bob
Não precisamos alterar um método para adicionar uma nova validação ou um novo trecho de código. Assim a chance de quebrar algo é muito menor.
“Entidades de software (classes, módulos ,funções, etc.) devem estar abertas para extensão, porém fechadas para modificação” - Bertrand Meyer
Se parece um pato, faz quack igual um pato, mas precisa de bateria. Então provavelmente você está utilizando abstração errado.
“Se q(x) é uma propriedade demonstrável dos objetos x de tipo T, então q(y) deve ser verdadeiro para objetos y de tipo S, onde S é um subtipo de T.” - Barbara Liskov
Segregação de interface, tem vezes que vamos implementar uma interface que não faz sentido para nosso contexto.
“Uma classe não deveria ser forçada a depender de métodos que não utilizará.” - Robert (Uncle Bob) Martin
Quer colocar lá uma lâmpada no quarto, você não pega um fio e solda diretamente na tomada. Não é dessa maneira que você faz.
“Abstrações não devem depender de implementações. Implementações devem depender de abstrações.” - Robert (Uncle Bob) Martin
Bruno Ribeiro ⚓