Neste módulo, aprendemos:
-
Que é mais interessante e mais seguro para o nosso código depender de interfaces (classes abstratas, assinaturas de métodos e interfaces em si) do que das implementações de uma classe.
-
Que as interfaces são menos propensas a sofrer mudanças enquanto implementações podem mudar a qualquer momento.
-
Que o Princípio de Inversão de Dependência (DIP) diz que implementações devem depender de abstrações e abstrações não devem depender de implementações.
-
Que as interfaces devem definir apenas os métodos que fazem sentido para seu contexto
-
Que uma classe pode implementar diversas interfaces
-
Que o Princípio de Segregação de Interfaces (ISP) diz que uma classe não deve ser obrigada a implementar um método que ela não precisa;
-
Os conceitos aprendidos neste treinamento formam o acrônimo SOLID Single Responsibility Principle Open Closed Principle Liskov Substituition Principle Interface Segregation Principle Dependency Inversion Principle
Neste módulo, aprendemos:
- Entendemos o que é Object Calisthenics propriamente dito
- Não usar getters nem setters
- Métodos devem ter apenas 1 nível de indentação
- Não usar else (nunca)
- Envolva tipos primitivos que possuam comportamento (desacoplar numa classe própria)
- Tenha classes específicas de coleção
- Tenha apenas 1 ponto (operador de acesso de objetos) por linha (instrução)
- Não abrevie nomes (nunca)
- Mantenha suas classes e pacotes pequenos