Questão de Arquitetura de Software — MVC (Model-view-controller) — CESGRANRIO 2024
Arquitetura de Software›MVC (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
Aapresentar a view escolhida e incorporar os estados da aplicação.
Bencapsular o conteúdo dos objetos e gerenciar requisições do usuário.
Cgerenciar requisições do usuário e preparar dados do modelo.
Dselecionar a resposta da view e encapsular funcionalidade.
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.