Refatoração do pygame #2
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Membros do grupo:
A oportunidade de abstração identificada foi feita, majoritariamente, no arquivo game_screen, no qual se fez presente muitas chamadas de sons com o uso do .play()/.stop(), de forma que foram feitas algumas funções a fim de ocultar essas chamadas do loop principal do jogo, e substituí-las pelas chamadas de função cujos nomes seriam de mais fácil assimilação. Esse tipo de abstração também poderia ter sido utilizado em outras partes do código em que se faziam presentes o carregamento de imagens e fontes, por exemplo, também melhorando a coesão.
A oportunidade de coesão identificada foi feita, principalmente, no arquivo sprites, no qual foi observado que muitas classes tinham dados em comum que poderiam facilmente ser compiladas apenas numa superclasse, que foi chamada de ConstrutorComum, já que os dados eram passados nos construtores de quase todas as classes. Em especial para o caso da classe das águias, EagleLeft e EagleRigth, que inclusive não possuíam esses nomes e os receberam a fim de tornar o código mais legível, uma superclasse intermediária Eagle foi feita entre ConstrutorComum e elas, de forma que Eagle possuísse além dos dados da sua superclasse, dados em comum para ambos os tipos de águia.