Com relação aos padrões GRASP, assinale a opção correta.

Próximas questões
Com base no mesmo assunto
Q386524 Arquitetura de Software
Com relação aos padrões GRASP, assinale a opção correta.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Vamos analisar a questão e as respectivas alternativas para entender o tema dos padrões GRASP (General Responsibility Assignment Software Patterns ou Padrões de Atribuição de Responsabilidade de Software). O gabarito correto é a alternativa E, e iremos justificar o motivo.

Alternativa E (Correta): O Especialista na Informação (Information Expert) é um padrão que associa a responsabilidade às classes que possuem a informação necessária para cumprir com essa responsabilidade. Esse padrão visa atribuir tarefas a quem tem o conhecimento ou dados necessários para realizá-las de maneira eficiente. Isso é fundamental para manter a lógica do sistema coesa e bem organizada.

Alternativa A (Incorreta): O conceito de Acoplamento Baixo (Low Coupling) refere-se à minimização das dependências entre classes para aumentar a modularidade e facilitar a manutenção do sistema. No entanto, a descrição apresentada na alternativa está incorreta ao associar o acoplamento baixo à atribuição de responsabilidade ao primeiro objeto além da camada de interface com o usuário, pois este é um conceito mais geral e não se limita à camada de interface.

Alternativa B (Incorreta): O Controlador (Controller) é um padrão utilizado para lidar com a coordenação de tarefas e a manipulação de eventos do sistema, e não especificamente para a criação de instâncias de classes. A criação de instâncias de classes é mais bem tratada pelo padrão Criador (Creator), e a descrição na alternativa não reflete corretamente a função principal do Controller em GRASP.

Alternativa C (Incorreta): A Alta Coesão (High Cohesion) é um padrão que se concentra em manter uma classe focada em poucas responsabilidades relacionadas, melhorando a manutenibilidade e a clareza do código. A alternativa mencionada está incorreta ao afirmar que a alta coesão está relacionada à independência de uma classe em relação a outras. Na verdade, ela se refere à coesão interna da própria classe, garantindo que suas responsabilidades sejam bem definidas e inter-relacionadas.

Alternativa D (Incorreta): O Criador (Creator) define quem deve ser responsável pela criação de um objeto. Se a classe A usa, contém ou agrega a classe B, então A deve ser responsável pela criação de B. A descrição na alternativa está incorreta ao atribuir à classe B a responsabilidade de criar uma instância de A, quando na verdade seria o contrário.

Espero que com essa explicação você tenha compreendido melhor os padrões GRASP e a justificativa para cada alternativa. Caso tenha mais dúvidas, estou à disposição para ajudar!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Vamos analisar cada uma das opções:


a) O acoplamento baixo (low coupling) baseia-se na quantidade de ligações entre as classes e está destinado à atribuição de responsabilidade ao primeiro objeto além da camada de interface com o usuário, que é responsável por receber ou tratar uma mensagem de operação do sistema (INCORRETO) O padrão que é responsável por tratar interface com o usuário é o padrão CONTROLLER ou CONTROLADOR.
b) O controlador (controller) permite solucionar problemas no controle de criação de instâncias de classes. Nesse sentido, se a classe X contiver dados iniciais da classe Y ou se X usar de maneira muito próxima Y, caberá a X criar instâncias de Y, em que o controller representaria o padrão mais indicado para solucionar esse problema. (INCORRETO) O padrão que controle a criação de instâncias de classes é o padrão CREATOR, e não o controlador.
c) A alta coesão (high cohesion) é um padrão utilizado para aprimorar a ligação entre as classes, permitindo que a classe A não dependa de outras classes. Esse padrão é considerado o princípio central e útil em projetos orientados a objetos que utilizam GRASP (INCORRETO) Quando pensamos em dependência entre classes, o padrão a ser lembrado é o padrão BAIXO ACOPLAMENTO, e não o alta coesão.
d) O criador (creator) é utilizado para a solução do problema de quem cria a instância de uma classe com objetos do modelo de domínio. Nesse caso, se A registra B, então atribui-se à classe B a responsabilidade de se criar uma instância de A. (INCORRETO) Se A registra B, quem deve registrar B é a classe A, e não o contrário!
e) O especialista na informação (information expert) associa-se ao mapeamento de responsabilidade em que se procura atribuir responsabilidade à classe que tenha informação necessária para satisfazê-la. (CORRETA) Realmente é o padrão ESPECIALISTA que é responsável por atribuir responsabilidades a cada uma das classes!

GRASP - Expert
•Problema :
–Qual é o princípio mais básico de atribuição de responsabilidades em projeto OO?
–Em um sistema com centenas de classes, como selecionamos quais responsabilidades devem estar em quais classes?
–Exemplo: Em um sistema de PDV, quem deveria ser o responsável pelo cálculo do total de um pedido?
•Solução:
–Atribuir a responsabilidade ao especialista
–O especialista é a classe que tem a informação necessária para satisfazer a responsabilidade
–Exemplo: Em um sistema de PDV, o responsável pelo cálculo do total de um pedido deveria ser a própria classe Pedido
É o padrão mais usado para atribuir responsabilidades.

Gabarito: Letra E.

Também conhecido como Information Expert, esse padrão é utilizado para determinar para quem delegar as responsabilidades. Essas responsabilidades incluem métodos, campos calculados, etc.

Deve-se atribuir a responsabilidade ao especialista da informação, isto é., a classe que possui a informação necessária para satisfazer essa responsabilidade.

Fonte: Estratégia Concursos

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo