A maioria das aplicações web tem algumas funcionalidades (p...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta para a questão apresentada é a D - Intercepting Filter.
A questão trata de padrões de projeto, especificamente de como aplicar funcionalidades transversais a todas as requisições de uma aplicação web de maneira eficiente. Vamos analisar o tema e as alternativas.
Para entender corretamente, é importante saber que algumas funcionalidades, como segurança, logging, ou validação, são transversais e aplicáveis a várias partes de uma aplicação. Implementar essas funcionalidades individualmente para cada requisição seria inviável devido à complexidade, propensão a erros e dificuldade de manutenção.
Intercepting Filter é um padrão de projeto que permite a implementação dessas funcionalidades transversais de uma forma centralizada. Ele utiliza uma cadeia de filtros para pré-processar ou pós-processar as requisições e respostas, tornando o código mais modular e de fácil manutenção. Por isso, é a resposta correta.
Agora, vamos justificar porque as outras alternativas estão incorretas:
A - Application Service: Este padrão é usado para encapsular a lógica de negócios em serviços de aplicação, facilitando a reutilização e gestão de transações. Embora útil, ele não é adequado para implementar funcionalidades transversais para todas as requisições.
B - Front Controller: Este padrão centraliza a manipulação de todas as requisições em um único controlador. Apesar de ajudar na organização da navegação em uma aplicação web, ele não é especificamente voltado para aplicar funcionalidades transversais como segurança ou logging.
C - Regular Expression: Expressões regulares são usadas para correspondência de padrões em strings, como validação de dados. Elas não são um padrão de projeto e não são adequadas para aplicar funcionalidades transversais a requisições web.
E - Command: Este padrão encapsula uma solicitação como um objeto, permitindo parametrizar clientes com diferentes solicitações, enfileirar ou fazer registro de solicitações. Ele é mais adequado para ações que precisam ser executadas de maneira flexível, mas não para aplicar funcionalidades transversais a todas as requisições.
Espero que esta explicação tenha esclarecido suas dúvidas sobre a questão. Se precisar de mais alguma orientação ou tiver outras dúvidas, estou à disposição!
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
O intercepting filter é um padrão utilizado para verificar a validade da solicitação que está sendo feita para uma requisição de página na web. Toda vez que um usuário abre um navegador Internet (browser) e digita um endereço, uma solicitação é gerada e entregue a um servidor na web, que por sua vez interpreta a solicitação e devolve uma resposta (página web).
Fonte: http://www.batebyte.pr.gov.br/modules/conteudo/conteudo.php?conteudo=1049
Só não entendo porque não poderia ser Front Controller. Front Controler é um ponto de entrada centralizado para todas as requisições.
Dessa forma qualquer requisito "global" poderia ser colocado nele, correto?
Alguem poderia explicar?
Desculpem a ignorância, mas... de quais padrões de projeto a questão está tratando? Conheço os padrões GoF e GRASP, quais outros existem e quais costumam cair em prova? Alguém poderia passar boas referências para estudo? Obrigada a quem puder ajudar.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo