Questão nº 67
Questão de Informática · FGV MPMS 2012 (nº 67)
Padrões de projeto visam fornecer soluções para problemas recorrentes do projeto de software. Considerando o catálogo de padrões “Core J2EE patterns”, analise o problema descrito a seguir:
“A maioria dos aplicativos possuem alguns requisitos, tais como segurança e logging, que são aplicáveis a todas as requisições da aplicação. Adicionar esse tipo de funcionalidade separadamente para cada serviço da aplicação seria demorado, propenso a erros e difícil de manter.”
Assinale a alternativa que indica o nome do padrão de projeto que pode ser usado para solucionar esse problema.
- ADecorator.
- BInterceptingFilter. (alternativa correta)
- CEmmulator.
- DSessionfaçade.
- EApplicationController.
Resposta comentada
Gabarito Alternativa B
Os Padrões de Projeto são soluções testadas e comprovadas para problemas comuns no desenvolvimento de software. Os Core J2EE Patterns são padrões específicos para aplicações Java EE, focados em resolver desafios de arquitetura e design em sistemas distribuídos e baseados na web.
(A) Incorreta: O padrão Decorator adiciona responsabilidades a um objeto dinamicamente, "envolvendo-o" com novas funcionalidades, mas não é o padrão ideal para interceptar todas as requisições de uma aplicação para aplicar funcionalidades como segurança ou logging de forma centralizada e desacoplada.
(B) Correta: O padrão InterceptingFilter é projetado para interceptar requisições e respostas em uma aplicação web, permitindo que funcionalidades como autenticação, autorização, logging e compressão sejam aplicadas de forma centralizada e configurável antes ou depois do processamento principal, resolvendo exatamente o problema descrito.
(C) Incorreta: "Emmulator" não é um padrão de projeto reconhecido no catálogo Core J2EE Patterns nem um padrão de projeto comum.
(D) Incorreta: O padrão SessionFacade simplifica a interação com um subsistema complexo de objetos de negócio, fornecendo uma interface unificada e gerenciando o ciclo de vida desses objetos, mas não tem como objetivo interceptar requisições para aplicar funcionalidades transversais.
(E) Incorreta: O padrão ApplicationController centraliza a lógica de controle e navegação da aplicação, determinando qual ação executar ou qual visão exibir com base na requisição. Embora lide com requisições, seu foco é o fluxo de controle, não a aplicação de funcionalidades como segurança ou logging em todas as requisições de forma genérica.
Fonte: FGV MPMS 2012 Analista - Informática/Análise de Sistemas. Reproduzida para fins de estudo.