Questão nº 65
Questão de TI - Soluções · FGV EPE 2024 (nº 65)
A arquitetura MVC (Model-View-Controller) sugere a divisão de aplicações em três principais grupos de componentes: Models, Views e Controllers, o que ajuda a atingir a separação de interesses.
Em relação aos Controllers, analise as afirmativas a seguir e assinale (V) para a verdadeira e (F) para a falsa.
( ) Atua como ponto de entrada inicial, sendo responsável por escolher os Models que serão empregados na execução bem como qual View será renderizada.
( ) Caso a lógica do Controller esteja muito complexa, é recomendável mover lógica de negócios para fora do mesmo, insira-a no modelo de domínio, por exemplo.
( ) Caso um Controller execute com frequência os mesmos tipos de ações, é uma boa prática mover essas ações comuns para filtros.
As afirmativas são, respectivamente,
- AV – F – V.
- BV – V – F.
- CF – V – F.
- DF – F – V.
- EV – V – V. (alternativa correta)
Resposta comentada
Gabarito Alternativa E
O padrão arquitetural MVC (Model-View-Controller) organiza o código de uma aplicação em três partes principais para separar as responsabilidades: o Model (dados e lógica de negócios), a View (interface do usuário) e o Controller (recebe requisições, interage com o Model e seleciona a View).
- (A) Incorreta: A afirmativa está correta, mas esta não é a alternativa do gabarito.
- (B) Incorreta: A afirmativa está correta, mas esta não é a alternativa do gabarito.
- (C) Incorreta: A afirmativa está correta, mas esta não é a alternativa do gabarito.
- (D) Incorreta: A afirmativa está correta, mas esta não é a alternativa do gabarito.
- (E) Correta:
- A primeira afirmativa é Verdadeira (V): O Controller é, de fato, o ponto de entrada para a lógica da aplicação após o roteamento, sendo responsável por orquestrar a interação com os Models (para processar dados e lógica de negócios) e, em seguida, determinar qual View deve ser apresentada ao usuário.
- A segunda afirmativa é Verdadeira (V): Uma boa prática em MVC é manter os Controllers "magros" (thin controllers). Lógica de negócios complexa deve ser movida para o Model (ou para camadas de serviço/domínio que o Model representa), garantindo a separação de interesses, reusabilidade e testabilidade do código. A armadilha aqui seria pensar que o Controller, por ser o "cérebro" que coordena, deve conter toda a lógica.
- A terceira afirmativa é Verdadeira (V): Para ações que se repetem em vários métodos ou Controllers (como autenticação, autorização, logging, validação de entrada), é uma prática comum e recomendada movê-las para filtros (também conhecidos como interceptors ou middleware). Isso evita duplicação de código e mantém os Controllers focados em suas responsabilidades principais.
Fonte: FGV EPE 2024 Analista de Gestão Corporativa - TI - Soluções (Caderno Tipo 1). Reproduzida para fins de estudo.