Pular para o conteúdo principal

Questão de Arquitetura de Software — MVC (Model-view-controller) — CESGRANRIO 2024

Arquitetura de SoftwareMVC (Model-view-controller)
Código
cg022828
Banca
CESGRANRIO
Órgão
UNEMAT
Ano
2024
Nível
Superior
Cargo
Analista de Sistemas
Ao construir uma aplicação para web, um programador decidiu projetar a arquitetura do software, seguindo o modelo Model-View-Controller (MVC).Nesse modelo, a função do Controller inclui
  1. Aapresentar a view escolhida e incorporar os estados da aplicação.
  2. Bencapsular o conteúdo dos objetos e gerenciar requisições do usuário.
  3. Cgerenciar requisições do usuário e preparar dados do modelo.
  4. Dselecionar a resposta da view e encapsular funcionalidade.
  5. Eselecionar comportamento do modelo e selecionar a resposta da view.
Revelar gabarito e comentário

GabaritoE — selecionar comportamento do modelo e selecionar a resposta da view.

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 (Model-View-Controller): função do Controller

Gabarito: letra E. No padrão MVC, o Controller atua como intermediário entre o usuário e o sistema: ele recebe as requisições do usuário, decide qual ação do Modelo deve ser executada e, após a resposta, seleciona a View adequada para exibir o resultado. A alternativa E ("selecionar comportamento do modelo e selecionar a resposta da view") descreve exatamente essas atribuições, conforme a definição clássica do MVC (Wikipédia).

NÃO CAIA NESSA!

A banca explora a confusão comum entre as responsabilidades das camadas. Lembre-se: o Controller não gerencia dados nem encapsula conteúdo — isso é papel do Modelo. O Controller é o orquestrador: recebe requisições, aciona o Modelo e seleciona a View. Fique atento a alternativas que misturam funções, como "preparar dados do modelo" ou "encapsular conteúdo".

Controller (MVC)
  • 1Função
    • Recebe requisições do usuário
    • Decide ação do Modelo
    • Seleciona a View
  • 2Não faz
    • Gerencia dados (Modelo)
    • Encapsula conteúdo (Modelo)
    • Prepara dados (Modelo)
    • Apresenta a View (View)
    • Gerencia estado (Modelo)
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que o Controller "apresenta a view escolhida e incorpora os estados da aplicação". Apresentar a view é responsabilidade da própria View, e incorporar estados (dados) é função do Modelo. O Controller não gerencia estado nem renderiza views; ele apenas coordena a interação.

Alternativa B — ❌ Incorreta

"Encapsular o conteúdo dos objetos e gerenciar requisições do usuário". Encapsular conteúdo é papel do Modelo (que encapsula dados e regras de negócio). Gerenciar requisições é sim função do Controller, mas a primeira parte está incorreta, tornando a alternativa falsa.

Alternativa C — ❌ Incorreta

"Gerenciar requisições do usuário e preparar dados do modelo". Gerenciar requisições é correto, mas "preparar dados do modelo" não é atribuição do Controller. O Controller invoca o Modelo para executar operações, mas quem prepara e gerencia os dados é o próprio Modelo.

Alternativa D — ❌ Incorreta

"Selecionar a resposta da view e encapsular funcionalidade". Selecionar a resposta da view pode ser interpretado como o Controller escolhendo qual view exibir, o que é correto. No entanto, "encapsular funcionalidade" é muito genérico e, no contexto do MVC, o encapsulamento da lógica de negócio é feito pelo Modelo, não pelo Controller. Além disso, a alternativa não menciona a interação com o Modelo, que é essencial.

Alternativa E — ✅ Correta ⟵ GABARITO

"Selecionar comportamento do modelo e selecionar a resposta da view". De acordo com o padrão MVC, o Controller recebe a entrada do usuário, decide qual operação (comportamento) deve ser executada pelo Modelo e, após o processamento, escolhe qual View deve apresentar o resultado ao usuário. Essa descrição está em conformidade com a definição clássica do Controller.

PEGA ESSA DICA!

Para fixar, anote o resumo das funções de cada camada: Model = dados + regras de negócio; View = apresentação (interface); Controller = coordenação (recebe input, chama Modelo, escolhe View). Esse é o núcleo do padrão MVC.

Gabarito: letra E.

Link permanente: /questoes/cg022828