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.

ilustração-principio-de-responsabilidade-unica

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.

ilustração-principio-aberto-fechado

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.

ilustração-principio-substituição-liskov

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.

ilustração-principio-segregação-interface

É 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..

ilustração-principio-substituição-liskov 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.

Agora é mão na massa, melhor forma de aprender