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

Publicidade

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
PHP
dezembro 08, 2021
0

Comentários

Menu

Pesquisar

Últimos Comentários

Fale Comigo