Link do Notion: https://www.notion.so/SOLID-com-Java-princ-pios-da-programa-o-orientada-a-objetos-284e6422bfb6803fbb5ccfeda4016bab?source=copy_link
Single Responsibility Principle
Open Closed Principle
Liskov Substitution Principle
Interface Segregation Principle
Dependency Inversion Principle
Coesão:
- Cada classe deve ser responsável por apenas uma coisa, e deve executar esta tarefa muito bem.
- Classes não coesas tendem a crescer indefinidamente, o que as tornam difíceis de manter.
Encapsulamento:
- É uma forma de manter os objetos das nossas classes protegidos, fornecendo apenas o que é estritamente necessário para o mundo exterior.
- O fato de criar getters e setters para tudo, na verdade, quebra o encapsulamento da nossa classe.
Acoplamento:
- Ação de acoplar. Agrupamento aos pares.
- Acoplamento é a dependência entre classes.
- Classes acopladas causam fragilidade no código da aplicação, o que dificulta sua manutenção.
- Algumas classes precisarão de outras, para que não tenham muitas responsabilidades. Cabe a nós medir quando faz sentido adicionar tal acoplamento com as dependências e como depender do que é seguro, ao invés de classes concretas.
- Devemos controlar o nível de acoplamento na nossa aplicação.