Princípios SOLID explicado com imagens
O QUE É SOLID?
SOLID é um acrônimo para 5 princípios da programação orientada a objetos (POO) criados por Rober C. Martin (conhecido como Uncle Bob). Esses principios ajudam à você contruir um código limpo e fácil de dar manutenção.
S.O.L.I.D. SIGNIFICA:
- S – Single-responsibility Principle (Princípio da Responsabilidade Única)
- O – Open-closed Principle (Princípio Aberto-fechado)
- L – Liskov Substitution Principle (Princípio de Substituição de Liskov)
- I – Interface Segregation Principle (Princípio de Segregação de Interface)
- D – Dependency Inversion Principle ( Princípio de Inversão de Dependência)
SINGLE-RESPONSIBILITY PRINCIPLE (SRP)
O Princípio da Responsabilidade Única diz que:
Uma classe deve ter uma e apenas uma rasão para mudar, o que significa que a classe deve ter apenas um trabalho.
Mantenha suas classe especialista em apenas uma coisa. Não crie uma classe canivete com que trate vários assuntos diferentes.
OPEN-CLOSED PRINCIPLE (OCP)
O Princípio Aberto-fechado diz que:
Objetos ou entidades devem ser abertos a extensão mas fechados para modificações.
Edward mãos normais pode usar tesoura ou qualquer outra ferramenta. Mas Edward mãos de tesoura não pode usar outra ferramenta sem que seja modificado.
LISKOV SUBSTITUTION PRINCIPLE (LSP)
O Princípio de Substituição de Liskov diz que:
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.
Em resumo, a classe que estende uma outra classe, deve ser capaz de substitui-la.
Se isso se parece como um pato grasna como um pato mas precisa de baterias, você provavelmente tem um erro na abstração.
INTERFACE SEGREGATION PRINCIPLE (ISP)
O Princípio de Segregação de Interface diz que:
Um cliente nunca deve ser forçado a implementar uma interface que não usa, ou clientes não devem ser forçados a depender de métodos que não usam.
É melhor ter varias interfaces especificas de mais que obrigar a implementação desnecessária.
DEPENDENCY INVERSION PRINCIPLE (DIP)
Princípio de Inversão de Dependência diz que:
Entidades devem depender de abstrações, não de objetos concretos. Isso diz que o módulo de alto nível não deve depender de um módulo de baixo nível, mas eles devem depender de abstrações.
Basicamente é melhor você criar uma interface que sua classe irá implementar e depender dessa interface no lugar da classe concreta..
Você soldaria uma lâmpada diretamente na fiação elétrica em uma parede?
CONCLUSÃO
Os princípios do SOLID representam a base para um desenvolvimento de software orientado a objetos saudável. É muito importante conhece-los e saber onde implementar. Recomento que sempre revisite esses conceitos e tente associa-los com usos práticos em seus projetos.