Princípios da Programação Orientada a Objetos (SOLID) com PHP

SOLID são princípios fundamentais na programação Orientada à Objeto (POO) que devem ser aplicados em qualquer linguagem de programação que siga o paradigma POO para a obtenção de qualidade superior de código e maior manutenibilidade.

S.O.L.I.D.:

  • S – Single Responsability Principle (ou Princípio da Responsabilidade Única);
  • O – Open-Closed Principle (ou Princípio Aberto-Fechado);
  • L – Liskov Substitution Principle ( ou Princípio da Substituivção de Liskov);
  • I – Interface Segregation Principle (ou Princípio da Segregação da Interface); e
  • D – Dependency Inversion Principle (ou Princípio da Inverção de Dependência).

Artigo em construção.

1 – Single Resonsability: Coesão – Uma classe (ou módulo, função, etc) deve ter um e apenas um motivo para mudar

2 – Open Closed Principle: Hierarquia – aberta para expansão, fechada para modificação. – ao invés de crescer com ifs, para cada tipo… usa hierarquia.

3 – Liskov Substitution Principle: classes filhas nunca deveriam infringir as definições de tipo da classe pai;

Se algum código depende de uma classe, qualquer classe que a estenda deve poder ser utilizada no lugar. Com isso, se um comportamento for alterado no método, resultados inesperados podem ocorrer.

quadrado e retangulo, quadrado é um rentangulo de largura e altura iguais. Mas se você implementa ela pode usar a propriedade de set altura e de set largura, mesmo não sendo possivel.

as classes filhas devem respeitar quaisquer definições das classes base.

Que o Princípio de Substituição de Liskov (LSP) diz que devemos poder substituir classes base por suas classes derivadas em qualquer lugar, sem problema

4) Inversão de Dependência: Abstrações não devem depender de astrações, implementações devem depender de abstrações.

Classes concretas devem depender de interfaces. Classes abstratas e interfaces não devem depender de classes concretas.

ao inves de receber uma instancia de mysql, use a interface de banco de dados, assim é possivel adicionar ou alterar o banco de dados sem alterar o código.

Caso uma determinada implementação mude, não seremos afetados, pois dependemos apenas de sua interface. Se um método muda a forma como realiza sua tarefa, desde que a interface se mantenha, não vamos precisar nos preocupar nem em editar o nosso código.

5) Interface Segragation Principle: uma classe não pode ser forçada a depender de metodos que não utilizará.

 se temos um objeto que implementa uma interface e um dos metodos não precisa ser implementado, significa que esse método deveria estar em outra interface.

—-

Referências Bibliográficas:

https://imasters.com.br/back-end/solid-com-php
https://medium.com/thiago-aragao/solid-princ%C3%ADpios-da-programa%C3%A7%C3%A3o-orientada-a-objetos-ba7e31d8fb25

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Sair da versão mobile