Pular para o conteúdo principal

Questão de Arquitetura de Software — MVC (Model-view-controller) — FUNDATEC 2025

Arquitetura de SoftwareMVC (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?
  1. AAcessar o banco de dados diretamente para simplificar a pilha, evitando a mediação do Model e reduzindo a latência.
  2. 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.
  3. 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.
  4. DManter referências persistentes do Model para várias Views, fazendo do Controller um repositório de estados de interface compartilhados.
  5. 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.

Gabarito: letra B

Link permanente: /questoes/qg474982