Analise as seguintes afirmações sobre padrões de projeto com...
I – O padrão de projeto Chain of Responsiblity tem a intenção de evitar o acoplamento do remetente de uma solicitação ao seu receptor, ao dar a mais de um objeto a oportunidade de tratar a solicitação, e encadear os objetos receptores, passando a solicitação ao longo da cadeia até que um objeto a trate.
II – O padrão de projeto Strategy tem a intenção de, sem violar o encapsulamento, capturar e externalizar um estado interno de um objeto, de maneira que o objeto possa ser restaurado para esse estado mais tarde.
III – O padrão de projeto Interpreter tem a intenção de fornecer um meio de acessar sequencialmente os elementos de um objeto agregado, sem expor a sua representação subjacente.
GAMMA, E.; HELM, R.; JOHNSON, R.; VLISSIDES, J. Padrões de Projetos – Soluções Reutilizáveis, Editora Bookman, 2000.
Assinale a alternativa correta, conforme Gamma et al. (2000):
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: A – Apenas a afirmação I é correta.
1. Tema central da questão:
A questão aborda padrões de projeto comportamentais em Orientação a Objetos, tema fundamental para concursos e para a prática de engenharia de software. O aluno precisa conhecer a finalidade e aplicação dos principais padrões descritos no clássico “Padrões de Projeto” de Gamma et al. (1994/2000).
2. Resumo teórico:
Padrões comportamentais tratam da interação e responsabilidade entre objetos. Exemplos:
- Chain of Responsibility: Permite que múltiplos objetos tenham a chance de processar uma solicitação, formando uma cadeia de possíveis manipuladores.
- Strategy: Permite definir uma família de algoritmos, encapsulá-los e torná-los intercambiáveis, mudando o comportamento do objeto conforme necessário.
- Interpreter: Oferece uma maneira de interpretar sentenças de uma linguagem.
- Iterator (não citado, mas relacionado): Oferece acesso sequencial aos elementos de um agregado sem expor sua estrutura interna.
Fonte: Gamma, E.; Helm, R.; Johnson, R.; Vlissides, J. Padrões de Projeto, Bookman, 2000.
3. Justificativa da alternativa correta:
I – Correta: O Chain of Responsibility é descrito exatamente como na afirmação: evita o acoplamento direto entre remetente e receptor, passando a solicitação por uma cadeia de objetos até que algum a trate.
4. Análise das afirmações incorretas:
II – Incorreta: A descrição se refere ao padrão Memento, que salva e restaura estados de objetos, sem violar encapsulamento, e não ao Strategy (que trata de algoritmos variáveis).
III – Incorreta: A afirmação descreve o padrão Iterator, não o Interpreter. O Interpreter é usado para interpretar linguagens, não para acessar coleções sequenciais.
5. Estratégia para interpretação:
Leia atentamente cada definição e relacione com os padrões corretos. Preste atenção em palavras-chave: “algoritmos intercambiáveis” (Strategy), “salvar e restaurar estado” (Memento), “acesso sequencial” (Iterator), “interpretação de linguagens” (Interpreter). Cuidado com pegadinhas que trocam as definições entre padrões.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo