Olá, pessoal da Alura. Apenas para colaborar, gostaria de pontuar que em boa parte das soluções propostas no curso, vcs utilizaram o padrão de projeto Strategy e não o mencionaram.
Outro ponto é que, ao se programar no modo full orientação a objetos, acabamos criando muitas e muitas classes, mesmo em sistemas bem pequenos. Basta pensarmos que se cada comportamento das classes virarem outras classes, o número total de classes do sistema aumenta muito, o que pode até não ser bom.
Precisamos ter bom senso, no final das contas.
Forte abraço