Questão nº 51
Questão de Tecnologia da Informação - Programação · FGV DPE-RS 2023 (nº 51)
João é programador do DPE/RS e precisa desenvolver o sistema DefensorNet com os seguintes requisitos técnicos:
• Todas as requisições HTTP devem passar por um Servlet, onde o fluxo de execução é direcionado para o controlador EJB adequado, e os dados retornados no processamento efetuado pelo controlador são direcionados para algum template, onde ocorre a montagem da resposta, na forma de uma página HTML; e
• O paradigma de programação é orientado a objetos, e as classes DAO são acessadas apenas ao nível dos controladores.
Para desenvolver o DefensorNet, no nível do Servlet e dos EJBs, João deve utilizar, respectivamente, os padrões:
- AProxy e Observer;
- BFlyweight e Strategy;
- CTemplate Method e Command;
- DFront Controller e Facade; (alternativa correta)
- EBuilder e Adapter.
Resposta comentada
Gabarito Alternativa D
Padrões de Projeto são soluções reutilizáveis para problemas comuns no design de software, como receitas de bolo para organizar seu código de forma eficiente.
- (A) Incorreta: Proxy controla o acesso a um objeto, e Observer notifica objetos sobre mudanças de estado; nenhum se encaixa na descrição de centralização de requisições ou simplificação de subsistemas.
- (B) Incorreta: Flyweight otimiza o uso de memória compartilhando objetos, e Strategy permite trocar algoritmos; não se aplicam à arquitetura de requisição e controle descrita.
- (C) Incorreta: Template Method define o esqueleto de um algoritmo, e Command encapsula uma requisição como um objeto; embora Command possa parecer relacionado a requisições, ele não descreve a centralização e o despacho do fluxo de requisições HTTP, nem a simplificação de acesso a DAOs como os padrões corretos. Armadilha: Command pode ser tentador por lidar com "requisições", mas o Front Controller descreve melhor o ponto de entrada centralizado e o fluxo de despacho para controladores.
- (D) Correta: O Front Controller é um padrão que centraliza o ponto de entrada para todas as requisições HTTP (o Servlet), delegando o processamento a outros componentes (os EJBs). A Facade é um padrão que fornece uma interface unificada e simplificada para um conjunto de interfaces em um subsistema (os EJBs atuando como uma fachada para as classes DAO e lógica de negócio subjacente, facilitando o acesso).
- (E) Incorreta: Builder constrói objetos complexos passo a passo, e Adapter converte interfaces incompatíveis; não são aplicáveis aos requisitos de fluxo de requisições e acesso a dados.
Fonte: FGV DPE-RS 2023 Técnico - Apoio Especializado (Programador) (Caderno Tipo 1). Reproduzida para fins de estudo.