Questão de Arquitetura de Software — MVC (Model-view-controller) — FUNDATEC 2025
Arquitetura de Software›MVC (Model-view-controller)
Código
qg474982
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2025
Nível
Superior
Cargo
Analista em Computação/Ênfase em Programação de Sistemas na Tecnologia Microsoft
Em um sistema ASP.NET Core MVC (Model-View-Controller) do Tribunal de Contas de um Estado (TCE), um formulário é submetido e validado. Qual é o papel correto do Controller no fluxo MVC?
AAcessar o banco de dados diretamente para simplificar a pilha, evitando a mediação do Model e reduzindo a latência.
BReceber a entrada, coordenar o Model e selecionar a View apropriada, preservando a separação entre apresentação e regra de negócio e orquestrando o ciclo requisição-resposta.
CConcentrar regras de negócio na View, pois a renderização já dispõe dos dados e pode validar calcular próximo ao usuário.
DManter referências persistentes do Model para várias Views, fazendo do Controller um repositório de estados de interface compartilhados.
ETornar padrão a renderização manual de HyperText Markup Language (HTML) no Controller, suprimindo deliberadamente a camada de View como abordagem recomendada para o fluxo geral de ASP.NET Core MVC.
Revelar gabarito e comentário▾
GabaritoB — Receber a entrada, coordenar o Model e selecionar a View apropriada, preservando a separação entre apresentação e regra de negócio e orquestrando o ciclo requisição-resposta.
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) – Papel do Controller
Gabarito: letra B. No padrão MVC, o Controller é responsável por receber a entrada do usuário, coordenar o Model e selecionar a View apropriada, mantendo a separação entre apresentação e regras de negócio e orquestrando o ciclo requisição-resposta. Essa definição está alinhada com a descrição clássica do padrão.
SE LIGUE NESSA!
O conteúdo de apoio (Wikipédia) confirma que o Controller "faz a mediação da entrada e saída, comandando a visão e o modelo" e que "recebe uma entrada GET ou POST... e decide como processá-la, invocando objetos do domínio para tratar a lógica de negócio, e por fim invocando uma visão para apresentar a saída".
A banca testa o conhecimento fundamental do fluxo MVC, sem armadilhas complexas.
Controller (MVC)
1Responsabilidades
Receber entrada do usuário
Coordenar o Model
Selecionar a View
2O que NÃO faz
Acessar banco de dados diretamente
Concentrar regras na View
Manter estado entre requisições
Renderizar HTML manualmente
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Afirma que o Controller deve acessar o banco de dados diretamente. Isso viola a separação de responsabilidades: o acesso a dados é função do Model, não do Controller. O Controller apenas coordena, sem implementar lógica de persistência.
Alternativa B — ✅ Correta ⟵ GABARITO
Descreve exatamente o papel do Controller: receber a entrada, coordenar o Model (invocando regras de negócio/acesso a dados) e selecionar a View para exibir o resultado. Preserva a separação entre apresentação (View) e regras de negócio (Model), orquestrando o ciclo requisição-resposta.
Alternativa C — ❌ Incorreta
Propõe concentrar regras de negócio na View. Isso fere o princípio do MVC, no qual a View é responsável apenas pela apresentação. Regras de negócio pertencem ao Model.
Alternativa D — ❌ Incorreta
Sugere que o Controller mantenha referências persistentes do Model para várias Views, funcionando como um repositório de estados. Na verdade, o Controller é tipicamente descartável por requisição e não armazena estado entre requisições (embora possa usar injeção de dependência). Ele coordena a requisição atual, sem manter estado compartilhado.
Alternativa E — ❌ Incorreta
Afirma que o Controller deve renderizar HTML manualmente, suprimindo a View. No MVC, a renderização da saída é responsabilidade exclusiva da View. O Controller não deve gerar HTML; ele apenas seleciona a View e fornece os dados.
PEGA ESSA DICA!
Para fixar o papel de cada camada MVC, lembre-se: Model = dados + regras de negócio; View = apresentação; Controller = orquestrador (recebe input, chama Model, escolhe View). Nunca misture essas responsabilidades.