Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — FGV 2024
Arquitetura de Software›Padrões de projeto (Design Patterns)
Código
fg075142
Banca
FGV
Órgão
AL-PR
Ano
2024
Nível
Superior
Cargo
Analista Legislativo - Desenvolvedor de Sistemas
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.
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.
Revelar gabarito e comentário▾
GabaritoC — A 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.
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”.
MVC em Aplicações Web de Três Camadas
Gabarito: letra C. A afirmativa correta é que a camada de apresentação corresponde à View do MVC, o Controller está na segunda camada (camada de aplicação/lógica de negócios), e o Model é implementado na terceira camada (camada de dados). Essa distribuição reflete o uso típico do padrão MVC em uma arquitetura três camadas, onde a separação de responsabilidades é mantida: a interface com o usuário (View) fica na primeira camada, a lógica de controle (Controller) na segunda, e os dados e regras de negócio (Model) na terceira.
Camada
Componente MVC
Função
1ª (Apresentação)
View
Interface com o usuário (exibição)
2ª (Negócios/Aplicação)
Controller
Recebe entradas, coordena fluxo, intermedia View e Model
3ª (Dados)
Model
Gerencia dados e regras de negócio
MVC em 3 camadas: 1ª camada (apresentação) (View); 2ª camada (negócios) (Controller); 3ª camada (dados) (Model)
Alternativa A — ❌ Incorreta
Afirma que a primeira e a segunda camadas ambas implementam uma versão do MVC. Isso é falso: o MVC é um padrão único que abrange as três camadas de forma integrada, não implementações separadas em cada camada. A segunda camada (negócios) contém o Controller e o Model (ou parte dele), mas não uma "versão do MVC" independente.
Alternativa B — ❌ Incorreta
Diz que a camada de apresentação corresponde à View além de implementar as classes do Model. Isso confunde as responsabilidades: o Model (dados e lógica de negócio) não pertence à camada de apresentação. A View apenas exibe informações; o Model fica nas camadas inferiores.
Alternativa C — ✅ Correta ⟵ GABARITO
A redação está alinhada com a prática comum: a camada de apresentação (front-end) contém a View; a segunda camada (aplicação/negócios) implementa o Controller, que recebe as entradas do usuário e coordena o fluxo; e a terceira camada (dados) contém o Model, que gerencia os dados e as regras de negócio. Essa divisão segue a separação de responsabilidades proposta pelo MVC.
Alternativa D — ❌ Incorreta
Afirma que a primeira camada é a View e a terceira camada implementa Controller e Model juntos. O Controller, porém, não deve ficar na camada de dados; sua função é intermediar a comunicação entre View e Model, estando mais adequado na camada de aplicação (segunda). Colocá-lo na terceira quebra a hierarquia e a modularidade.
Alternativa E — ❌ Incorreta
Diz que o backend corresponde unicamente a View e Controller, omitindo o Model. O backend, em uma arquitetura três camadas, inclui tanto a lógica (Controller) quanto os dados (Model). A View, por sua vez, é tipicamente front-end. Ignorar o Model é um erro grave.
PEGA ESSA DICA!
Para questões sobre MVC e arquitetura em camadas, lembre-se do mapeamento clássico: View = apresentação (interação com o usuário), Controller = lógica de aplicação (coordena fluxo e validações), Model = lógica de dados/negócio (armazenamento e regras). Em aplicações web, o Controller geralmente reside no servidor de aplicação (camada intermediária), enquanto o Model pode estar no servidor de banco de dados ou em uma camada de serviço separada. Treine com exemplos de frameworks como Spring MVC (servidor) e Angular (cliente) para fixar o conceito.