Questão de Arquitetura de Software — MVC (Model-view-controller) — FADE - UFPE 2023
Arquitetura de Software›MVC (Model-view-controller)
Código
qq866882
Banca
FADE - UFPE
Órgão
UFPE
Ano
2023
Nível
Superior
Cargo
FADE - - Analista de Tecnologia da Informação - Área: Sistemas
No contexto de desenvolvimento Web, referente ao padrão de arquitetura MVC (Model-View-Controller), qual das seguintes afirmações é verdadeira?
AO Controller é o local de armazenamento do estado da aplicação, sendo responsável por controlar o acesso ao banco de dados.
BO Model representa o modelo de negócios da aplicação, assegurando que as regras estão implementadas corretamente.
CO Controller atua como um mediador entre a View e o Model, garantindo que a View nunca defina o estado diretamente no Model.
DO padrão MVC sugere que a View deve ser responsável por atualizar diretamente o estado do Model.
ECada View em uma aplicação sempre requer uma classe Controller separada e distinta.
Revelar gabarito e comentário▾
GabaritoC — O Controller atua como um mediador entre a View e o Model, garantindo que a View nunca defina o estado diretamente no Model.
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)
Gabarito: letra C. O Controller atua como mediador entre View e Model, garantindo que a View nunca defina o estado diretamente no Model, conforme o padrão MVC descrito no artigo da Wikipédia sobre MVC.
A banca testa o conhecimento sobre as responsabilidades e interações entre os três componentes do MVC. A alternativa correta resume o papel central do Controller como intermediário, impedindo que a View manipule o Model diretamente.
Wikipédia – Model-view-controller:
"O Controle (Controller) envia essas ações para o Modelo (Model) e para a janela de visualização (View) onde serão realizadas as operações necessárias."
Componente
Função Principal
Interação com outros componentes
Responsabilidade sobre estado/regras
Model
Gerencia dados e regras de negócio
Recebe comandos do Controller; notifica a View sobre mudanças
Armazena o estado da aplicação e implementa as regras de negócio
View
Exibe dados ao usuário
Recebe dados do Model (indiretamente via Controller); envia ações do usuário ao Controller
Apenas exibe; nunca altera o estado do Model diretamente
Controller
Medeia entre View e Model
Recebe entradas da View; envia comandos ao Model; atualiza a View
Não armazena estado; apenas coordena as ações
1Usuário interage com a View
2View notifica o Controller
3Controller atualiza o Model
4Model notifica a View
5View renderiza resposta
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Afirma que o Controller armazena o estado da aplicação e controla o acesso ao banco de dados. Na verdade, o Model é o responsável pelo armazenamento e lógica de negócio, enquanto o Controller apenas comanda o Model para executar ações. O texto diz: "Modelo é a ponte... gerencia o comportamento dos dados através de regras de negócios" e "O Controle (Controller) envia essas ações para o Modelo (Model)". Portanto, a descrição está incorreta.
Alternativa B — ❌ Incorreta
Diz que o Model "assegura que as regras estão implementadas corretamente". Embora o Model contenha as regras de negócio ("consiste na parte lógica da aplicação, que gerencia o comportamento dos dados através de regras de negócios"), ele não "assegura" a correção delas – essa é uma atribuição do desenvolvedor/QA. A redação exagerada torna a afirmativa falsa. O correto é que o Model implementa as regras, mas não garante sua correção.
Alternativa C — ✅ Correta ⟵ GABARITO
Exatamente o papel do Controller: "faz a mediação da entrada e saída, comandando a visão e o modelo para serem alterados de forma apropriada". Ele impede que a View altere diretamente o estado do Model – toda interação passa pelo Controller. O texto confirma: "O Controlador (controller) envia comandos para o modelo para atualizar o seu estado". Portanto, correta.
Alternativa D — ❌ Incorreta
Afirma que a View deve atualizar diretamente o estado do Model. Isso viola o princípio do MVC. A View apenas exibe dados; ela "não se dedica em saber como o conhecimento foi retirado ou de onde ela foi obtida, apenas mostra a referência". A atualização do Model é feita pelo Controller, não pela View.
Alternativa E — ❌ Incorreta
Diz que "cada View sempre requer uma classe Controller separada e distinta". O padrão permite que várias Views compartilhem o mesmo Controller, e o texto menciona que "É possível ter várias visões do mesmo dado". A palavra "sempre" torna a afirmação falsa.
PEGA ESSA DICA!
Guarde o fluxo básico do MVC: Usuário interage com a View → View notifica o Controller → Controller atualiza o Model → Model notifica a View (opcional) → View se atualiza. O Controller é o intermediário que impede o acoplamento direto entre View e Model.