Padrões de projeto visam fornecer soluções para problemas r...
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.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a B - Intercepting Filter.
Vamos entender por que essa alternativa está correta e as outras não. O problema descrito fala sobre a necessidade de adicionar funcionalidades como segurança e logging a todas as requisições de uma aplicação de forma centralizada, evitando a repetição de código e facilitando a manutenção.
O padrão Intercepting Filter é usado exatamente para resolver esse tipo de problema. Ele permite que funcionalidades transversais (como autenticação, logging, ou compressão de dados) sejam aplicadas a todas as requisições de uma maneira centralizada e uniforme. Ele faz isso através de filtros que interceptam as requisições antes de atingirem o destino final, processando-as conforme necessário.
Agora, vamos entender por que as outras alternativas estão incorretas:
A - Decorator: Esse padrão é utilizado para adicionar comportamentos a objetos de forma dinâmica, mas é mais adequado para situações onde os comportamentos adicionais são específicos a certos objetos ou classes, não para requisições transversais em uma aplicação inteira.
C - Emmulator: Este não é um padrão de design reconhecido no contexto dos padrões de projeto, especialmente no catálogo Core J2EE. Provavelmente é uma alternativa descontextualizada.
D - Session Façade: Este padrão é utilizado para simplificar a interação entre clientes e serviços remotos, encapsulando a complexidade das interações em uma única fachada. Ele não é adequado para adicionar funcionalidades transversais como segurança ou logging.
E - Application Controller: Este padrão é usado para centralizar a lógica de controle em uma aplicação, facilitando a navegação e o fluxo de lógica. Ele não se destina a interceptar e processar todas as requisições de maneira transversal.
Portanto, a alternativa Intercepting Filter é a mais adequada para resolver o problema descrito, que exige uma solução para aplicar funcionalidades transversais a todas as requisições de uma aplicação de maneira centralizada e eficiente.
Espero que essa explicação tenha clareado suas dúvidas sobre o tema. Se precisar de mais esclarecimentos, estarei aqui 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
b)InterceptingFilter. => Utilizado para interceptar e manipular uma requisição e uma resposta antes e depois de a requisição ser processada.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo