Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — FCC 2019

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
fc056300
Banca
FCC
Órgão
SANASA Campinas
Ano
2019
Cargo
Analista de Tecnologia da Informação - Análise e Desenvolvimento
Um Analista de TI precisa criar um filtro de requisições em uma aplicação Java EE para processar um conjunto de serviços de maneira padrão. Esse recurso será usado para interceptar e manipular as requisições vindas das páginas web e as respostas retornadas da camada de modelo a estas requisições. O padrão de projeto adequado para esta situação é o
  1. AIntercepting Filter.
  2. BFilter Chain.
  3. CBridge.
  4. Dinterpreter.
  5. EFilter Controller
Revelar gabarito e comentário

GabaritoA — Intercepting Filter.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Filtro de requisições em Java EE: Intercepting Filter

Gabarito: letra A. O padrão Intercepting Filter é o mais adequado para criar um filtro que intercepta e manipula requisições e respostas em aplicações web, aplicando processamento padrão a um conjunto de serviços. Ele é comumente usado em Java EE para tarefas como logging, autenticação, compressão, etc.

A banca testa o conhecimento sobre padrões de projeto voltados à web, em especial o Intercepting Filter, que faz parte do catálogo de padrões para a camada de apresentação. As demais alternativas não correspondem à situação descrita.

Padrão de Projeto

Categoria

Finalidade

Aplicação em Java EE

Relação com o Enunciado

Intercepting Filter (A)

Apresentação (Web)

Interceptar e manipular requisições/respostas antes/depois do recurso alvo

javax.servlet.Filter (logging, autenticação, compressão)

✅ Casa perfeitamente: "criar um filtro... interceptar e manipular requisições e respostas"

Filter Chain (B)

— (não é padrão formal)

Conceito de encadeamento de filtros

Pode ser confundido com Chain of Filters

❌ Nome genérico; o padrão correto é Intercepting Filter

Bridge (C)

Estrutural (GoF)

Separar abstração da implementação

Não se aplica a filtros web

❌ Sem relação com interceptação de requisições

Interpreter (D)

Comportamental (GoF)

Definir gramática e interpretar expressões

Não se aplica a filtros web

❌ Sem relação com filtros de requisições

Filter Controller (E)

— (não é padrão reconhecido)

Mistura de Front Controller + Filter

Não é um padrão estabelecido

❌ Nome incorreto; o padrão específico é Intercepting Filter

Alternativa A — ✅ Correta ⟵ GABARITO

O Intercepting Filter é um padrão de projeto que permite a criação de filtros para processar requisições e respostas antes ou depois de chegarem ao recurso alvo. É ideal para centralizar processamento comum (autenticação, log, compressão) em aplicações web, como em Java EE com o uso de filtros (javax.servlet.Filter). A descrição do enunciado — "criar um filtro de requisições... interceptar e manipular requisições e respostas" — casa perfeitamente com esse padrão.

Alternativa B — ❌ Incorreta

Filter Chain não é um padrão de projeto formalmente reconhecido no catálogo GoF ou em padrões arquiteturais. Pode ser confundido com o conceito de encadeamento de filtros (Chain of Filters), mas o nome correto e conhecido para o padrão descrito é Intercepting Filter. A banca utiliza o termo genérico "Filter Chain" como distrator, induzindo o candidato a achar que é o nome do padrão.

Alternativa C — ❌ Incorreta

Bridge é um padrão estrutural do GoF que separa uma abstração de sua implementação para que possam variar independentemente. Não tem relação com interceptação de requisições web.

Alternativa D — ❌ Incorreta

Interpreter é um padrão comportamental do GoF que define uma gramática e um interpretador para avaliar expressões. Não se aplica a filtros de requisições.

Alternativa E — ❌ Incorreta

Filter Controller não é um padrão de projeto reconhecido. Pode ser uma mistura de conceitos (Front Controller + Filter), mas não é um padrão estabelecido. O nome correto e mais específico para a situação é Intercepting Filter.

NÃO CAIA NESSA!

A banca explora a confusão entre Filter Chain (termo genérico, mas não padrão) e Intercepting Filter (padrão consagrado). O candidato pode ser tentado a escolher "Filter Chain" por descrever a sequência de filtros, mas o nome formal e cobrado em provas é Intercepting Filter. Além disso, "Filter Controller" é um nome inventado que parece combinar conceitos, mas não existe.

Gabarito: letra A — Intercepting Filter.

Link permanente: /questoes/fc056300