Questão nº 33
Questão de Tecnologia da Informação · FGV ALEP 2024 (nº 33)
Queremos construir uma aplicação WEB em JAVA em três camadas.
Sobre a utilização do padrão de projeto MVC nesta aplicação, assinale a afirmativa correta.
- AA primeira camada, ou camada de apresentação, e a segunda camada, ou camada de negócios, ambas implementam uma versão do MVC.
- BA camada de apresentação corresponde a View do MVC além de implementar as classes do Model.
- CA camada de apresentação corresponde a View do padrão MVC, o Controler é implementado na segunda camada utilizando o Model que é implementado na terceira camada. (alternativa correta)
- DA primeira camada corresponde a View do padrão MVC e a terceira camada implementa o Controler e o Model do padrão MVC.
- EA camada de apresentação corresponde ao frontend e o backend coresponde unicamente a View e o Controler do padrão MVC.
Resposta comentada
Gabarito Alternativa C
Em uma aplicação Java WEB de três camadas, o padrão MVC (Model-View-Controller) ajuda a organizar o código, separando as responsabilidades. As camadas são: Apresentação (o que o usuário vê e interage), Negócios (as regras e lógica principal da aplicação) e Dados (como a aplicação acessa e guarda informações). No MVC, o Model gerencia os dados e a lógica de negócios, a View exibe a interface para o usuário, e o Controller recebe as ações do usuário, interage com o Model e decide qual View mostrar.
(A) Incorreta: O padrão MVC é aplicado para organizar a interação entre a interface do usuário, a lógica de negócios e os dados, não para que cada camada da arquitetura tenha sua própria versão do MVC. A camada de negócios contém o Model, não um MVC completo.
(B) Incorreta: A camada de apresentação deve focar apenas na interface do usuário (View). Implementar as classes do Model (lógica de negócios e acesso a dados) diretamente na camada de apresentação violaria a separação de responsabilidades e a arquitetura em camadas.
(C) Correta: A camada de apresentação (primeira camada) é onde a View (interface do usuário) reside. O Controller, que orquestra as requisições e interage com a lógica de negócios, é comumente implementado na segunda camada (camada de negócios). O Model, que contém a lógica de negócios e o acesso a dados, tem sua parte de persistência (acesso ao banco de dados) implementada na terceira camada (camada de dados), enquanto a lógica de negócios mais pura do Model também pode estar na segunda camada, sendo utilizada pelo Controller.
(D) Incorreta: Colocar o Controller na terceira camada (camada de dados) é um erro arquitetural. O Controller é responsável por receber as requisições do usuário e orquestrar a resposta, estando mais próximo da camada de apresentação ou da camada de negócios.
(E) Incorreta: A camada de apresentação corresponde ao frontend. O backend geralmente engloba o Controller e o Model. Afirmar que o backend corresponde unicamente à View e ao Controller está errado, pois o Model é uma parte essencial do backend, e a View é primariamente frontend.
Fonte: FGV ALEP 2024 Analista Legislativo - Desenvolvedor de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.