Principios De Projeto
O padrão GRASP que está sendo violado na definição de classe apresentada é o padrão alta coesão, pois a classe cliente está assumindo responsabilidade que não são suas. Vejo que a solução pra tal problema seria a criação de uma nova classe, por exemplo, passagem com os dados do voo e assim realizando a ligação da classe cliente com a classe avião.
Exercício 3
Alta coesão ajuda a obter baixo acoplamento sim, pois coesão nos quer dizer que as tarefas desempenhadas em uma determinada classe estão relacionadas com o mesmo conceito, assim fica mais viável lidar com o acoplamento baixo, pois quanto menor for à dependência e o conhecimento do outro é melhor, uma vez que estão diretamente ligados.
Exercício 4
O problema da solução apresentada é que não a respeito ao padrão GRASP Polimorfismo, este que determina a inviabilidade de realizar a solução “iftipado” em seu resultado. A resolução do problema apresentado é que deve ser definido na sua especificidade como apresentado no modelo abaixo, e o padrão utilizado na solução também foi o Polimorfismo.
Exercício 5
Aplicação do Polimorfismo fica da seguinte forma:
Exercício 6
Aplicando a Indireção no modelo apresentado fica da seguinte forma:
Exercício 7
Sim, para solucionar o exercício 6 utilizei o padrão Invenção Pura. E sobre a relação dos padrões Invenção Pura e Indireção, estes estão diretamente ligados a solucionar problemas relacionados a acoplamento e coesão, visando sempre uma invenção limpa e através da
indireção cria-se um objeto intermediário para não esbarrar diretamente em outros
componentes.