Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — FGV 2024

Arquitetura de SoftwarePadrõ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.
  1. AA primeira camada, ou camada de apresentação, e a segunda camada, ou camada de negócios, ambas implementam uma versão do MVC.
  2. BA camada de apresentação corresponde a View do MVC além de implementar as classes do Model.
  3. 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.
  4. DA primeira camada corresponde a View do padrão MVC e a terceira camada implementa o Controler e o Model do padrão MVC.
  5. 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

11ª camada (apresentação)
View
22ª camada (negócios)
Controller
33ª camada (dados)
Model
MVC em 3 camadas
LEVELsoulevel.com.br
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.

Gabarito: letra C.

Link permanente: /questoes/fg075142