Pular para o conteúdo principal

Questão de Arquitetura de Software — MVC (Model-view-controller) — FADE - UFPE 2023

Arquitetura de SoftwareMVC (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?
  1. AO Controller é o local de armazenamento do estado da aplicação, sendo responsável por controlar o acesso ao banco de dados.
  2. BO Model representa o modelo de negócios da aplicação, assegurando que as regras estão implementadas corretamente.
  3. CO Controller atua como um mediador entre a View e o Model, garantindo que a View nunca defina o estado diretamente no Model.
  4. DO padrão MVC sugere que a View deve ser responsável por atualizar diretamente o estado do Model.
  5. 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

  1. 1Usuário interage com a View
  2. 2View notifica o Controller
  3. 3Controller atualiza o Model
  4. 4Model notifica a View
  5. 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.

Gabarito: letra C

Link permanente: /questoes/qq866882