- O que é? É uma junção de princípios e boas práticas utilizadas com a intenção de melhorar a arquitetura e o design de um projeto, que ajuda a facilitar a manutenção e a compreensão do código
O acrônimo surgiu após unir os 5 princípios da POO
- S -> Single Responsibility Principle (responsabilidade única)
Este princípio fala que uma classe deve ter apenas um único objetivo, possuindo apenas uma função ou funções similares
- O -> Open-Closed Principle (princípio aberto fechado)
Uma classe deve ser aberta para extensão e fechada para modificação - outras classes podem ter acesso a uma classe determinada mas não devem ser capazes de alterá-la
- L -> Liskov Substitution Principle (princípio da substituição de Liskov)
É o princípio que traz a ideia de herança. "As classes derivadas devem ser substituíveis pelas classes bases"
- I -> Interface Segregation Principle (princípio da segregação da interface)
Classes não devem ser forçadas a implementar métodos que não usam. Uma interface implementa somente os métodos que aquela classe utilizará, evitando a sobreposição de código
- D -> Dependency Inversion Principle (princípio da inversão da dependência)
Os módulos que são classes de alto nível devem depender de conceitos, também chamadas de abstrações independente de como funcionam, ou seja, a função da inversão de dependência faz com que os softwares se desassociem dos módulos
- Segurança
- Manutenção
- Reutilização