Pular para o conteúdo principal

Questão de Arquitetura de Software — MVC (Model-view-controller) — CESPE / CEBRASPE 2024

Arquitetura de SoftwareMVC (Model-view-controller)
Código
ce176008
Banca
CESPE / CEBRASPE
Órgão
LNA
Ano
2024
Nível
Superior
Cargo
Tecnologista – Especialidade: Desenvolvimento e Arquitetura de Software
Com base no padrão de arquitetura de software MVC (model-view-controller), assinale a opção correspondente à atribuição do controller.
  1. Areunir os métodos que alteram o estado dos objetos de domínio
  2. Bfazer a seleção da resposta da visão
  3. Cpreparar os dados do modelo para atender às solicitações dos clientes
  4. Dreunir todos os dados da WebApp
  5. Etratar as solicitações recebidas para a mudança de comportamento do modelo
Revelar gabarito e comentário

GabaritoB — fazer a seleção da resposta da visão

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) — Atribuição do Controller

Gabarito: letra B. No padrão MVC, o controller atua como intermediário entre a view e o model, recebendo as requisições do usuário, interpretando-as, interagindo com o model e, em seguida, selecionando a view (resposta) adequada para exibir o resultado. É exatamente isso que a alternativa B descreve: "fazer a seleção da resposta da visão" — o controller decide qual view será renderizada. As demais alternativas atribuem ao controller funções que são, na verdade, responsabilidade do model ou da view.

A banca cobra a distinção clara dos papéis de cada componente. O controller não manipula dados nem contém lógica de negócio; ele apenas coordena o fluxo. A definição clássica do padrão MVC (Gamma et al., 1994) estabelece que o controller mapeia a entrada do usuário para ações do model e seleciona a view seguinte. O material de apoio e confirma: o controller "interpreta entradas do usuário e interage com o Modelo", "Atualiza a Visão conforme necessário" e "faz a seleção da resposta da visão" é o ato de decidir qual visão apresentar.

1Função central
2Intermediário entre View e Model
3Recebe requisições do usuário
4Interpreta entradas
5Interage com o Model
6Seleciona a View de resposta
7Não faz
8Manipula dados (Model)
9Contém lógica de negócio (Model)
10Prepara dados (Model)
11Reúne todos os dados (Model)
MVC — Controller
LEVELsoulevel.com.br
MVC — Controller: Função central; Intermediário entre View e Model; Recebe requisições do usuário; Interpreta entradas; Interage com o Model; Seleciona a View de resposta; Não faz; Manipula dados (Model); Contém lógica de negócio (Model); Prepara dados (Model); Reúne todos os dados (Model)

Alternativa A — ❌ Incorreta

Reunir métodos que alteram o estado dos objetos de domínio é função do model, não do controller. O model encapsula a lógica de negócio e gerencia o estado. O controller, por sua vez, invoca esses métodos, mas não os "reúne" — ele apenas delega.

Alternativa B — ✅ Correta ⟵ GABARITO

A seleção da resposta da visão é atribuição central do controller. Após processar a requisição e interagir com o model, o controller escolhe qual view (template, página, componente) será retornada ao cliente. É o que garante a separação entre a lógica de fluxo (controller) e a apresentação (view).

Alternativa C — ❌ Incorreta

Preparar os dados do modelo para atender às solicitações é responsabilidade do model, que gerencia a lógica de acesso e preparação dos dados. O controller apenas solicita ao model que execute ações, mas não prepara os dados diretamente.

Alternativa D — ❌ Incorreta

"Reunir todos os dados da WebApp" é uma afirmação genérica e inadequada: nenhum componente reúne "todos" os dados. O model gerencia dados específicos; o controller não é um agregador de dados.

Alternativa E — ❌ Incorreta

"Tratar as solicitações recebidas para a mudança de comportamento do modelo" — embora o controller trate as solicitações, a finalidade não é "mudar o comportamento" do model (que é fixo, definido pelas regras de negócio), mas sim alterar seu estado (chamando métodos do model). O controller não altera o comportamento (algoritmos, regras); quem o faz é o model. A redação "mudança de comportamento" é imprecisa e leva ao erro.

NÃO CAIA NESSA!

A alternativa E parece tentadora, pois o controller realmente "trata solicitações", mas a banca explora o termo "comportamento" para confundir: controller não muda o comportamento do model, apenas invoca suas operações. A pegadinha está em atribuir ao controller uma responsabilidade que é do domínio.

Gabarito: letra B.

Link permanente: /questoes/ce176008