Questão de Arquitetura de Software — MVC (Model-view-controller) — ADM&TEC 2024
Arquitetura de Software›MVC (Model-view-controller)
Código
qg061403
Banca
ADM&TEC
Órgão
Prefeitura de São Luís do Quitunde - AL
Ano
2024
Nível
Superior
Cargo
Analista de Sistemas
Considere as afirmações abaixo sobre o padrão de arquitetura MVC, e em seguida assinale a alternativa que indica quais são as verdadeiras:I. O componente View é a camada de apresentação responsável por gerar uma visualização dos dados e por recebê-los como dados de entrada dos usuários. O View não se importa de onde tais dados vêm, mas sim como eles serão mostrados.II. A camada Controller é a que move a aplicação. Ou seja, o Controller interpreta as ações realizadas pelos usuários e as envia para o Model; assim, dessa forma, a aplicação segue determinado comportamento. Tais ações podem ser cliques em botões, interações com menus, opções de ativar/desativar funcionalidades etc.III. Na arquitetura MVC, não é permitido à camada de apresentação se comunicar de forma direta com a camada de dados. Podem ser utilizadas camadas intermediárias para tal, porém essa comunicação somente é permitida se for realizada de forma linear e bidirecional.
ASomente as afirmações I e II são verdadeiras.
BSomente as afirmações II e III são verdadeiras.
CSomente as afirmações I e III são verdadeiras.
DAs afirmações I, II e III são verdadeiras.
Revelar gabarito e comentário▾
GabaritoA — Somente as afirmações I e II são verdadeiras.
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”.
Padrão MVC (Model-View-Controller)
Gabarito: letra A. Apenas as afirmações I e II estão corretas. A afirmativa III erra ao afirmar que a View não pode se comunicar diretamente com o Model e que a comunicação deve ser linear e bidirecional — no MVC clássico, a View pode observar diretamente o Model (padrão Observer) e a comunicação não é restrita a esse formato.
A banca cobra o conhecimento das responsabilidades de cada componente do MVC e as regras de comunicação entre eles.
Afirmação I — ✅ Correta
A View é a camada de apresentação, responsável por exibir os dados ao usuário e capturar suas interações. Ela não se preocupa com a origem dos dados, apenas com a forma de exibição. Conforme o conteúdo de apoio: "Visão pode ser qualquer saída de representação dos dados... Não se dedica em saber como o conhecimento foi retirado ou de onde ela foi obtida, apenas mostra a referência." Está correta.
Afirmação II — ✅ Correta
O Controller interpreta as ações do usuário (cliques, menus, etc.) e as envia para o Model, dirigindo o comportamento da aplicação. O texto afirma: "Controle é o componente final da tríade, faz a mediação da entrada e saída... envia essas ações para o Modelo (Model) e para a janela de visualização (View)." Portanto, correta.
Afirmação III — ❌ Incorreta
A afirmativa contém dois erros: (1) "não é permitido à camada de apresentação se comunicar de forma direta com a camada de dados" — no MVC, a View pode sim se comunicar diretamente com o Model (através do padrão Observer, onde o Model notifica as Views sobre mudanças); (2) "essa comunicação somente é permitida se for realizada de forma linear e bidirecional" — não há essa exigência no padrão. O conteúdo de apoio menciona: "Uma View deve garantir que sua expressão reflita o estado do Model. Sempre que os dados do Model mudam, o Model altera as Views que dependem dele." Isso mostra comunicação direta e unidirecional (Model → View), não necessariamente bidirecional. Logo, a afirmação é falsa.
Afirmação
Responsabilidade do Componente
Comunicação com Model
Correção
I (View)
Camada de apresentação: exibe dados e captura interações do usuário, sem se importar com a origem dos dados
Não se comunica diretamente com a origem dos dados, apenas com a forma de exibição
✅ Correta
II (Controller)
Interpreta ações do usuário (cliques, menus) e as envia para o Model, dirigindo o comportamento da aplicação
Envia ações para o Model e para a View
✅ Correta
III (Comunicação)
Afirma que View não pode se comunicar diretamente com Model e que a comunicação deve ser linear e bidirecional
No MVC clássico, a View pode observar diretamente o Model (padrão Observer), e a comunicação não é restrita a esse formato
❌ Incorreta
MVC (Model-View-Controller): View (apresentação) (Exibe dados, Captura interações, Não sabe origem dos dados); Controller (mediação) (Interpreta ações do usuário, Envia ao Model); Model (dados/regras) (Notifica Views (Observer), Comunicação direta View-Model)
NÃO CAIA NESSA!
A banca tenta confundir o candidato ao negar a comunicação direta entre View e Model. No MVC original, a View pode sim se comunicar diretamente com o Model (via Observer) — o Controller não é obrigatório para essa ligação. Memorize: Model ↔ View pode ser direta; Controller intermedeia ações do usuário.
Gabarito: letra A — apenas as afirmações I e II são verdadeiras.