Pular para o conteúdo principal

Questão de Arquitetura de Software — MVC (Model-view-controller) — ADM&TEC 2024

Arquitetura de SoftwareMVC (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.
  1. ASomente as afirmações I e II são verdadeiras.
  2. BSomente as afirmações II e III são verdadeiras.
  3. CSomente as afirmações I e III são verdadeiras.
  4. 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

1View (apresentação)
Exibe dados
Captura interações
Não sabe origem dos dados
2Controller (mediação)
Interpreta ações do usuário
Envia ao Model
3Model (dados/regras)
Notifica Views (Observer)
Comunicação direta View-Model
MVC (Model-View-Controller)
LEVELsoulevel.com.br
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.

Link permanente: /questoes/qg061403