Pular para o conteúdo principal

Questão de Arquitetura de Software — MVC (Model-view-controller) — IV - UFG 2024

Arquitetura de SoftwareMVC (Model-view-controller)
Código
qg270024
Banca
IV - UFG
Órgão
Prefeitura de Rio Branco - AC
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação
MVC (do inglês, Model-View-Controller) é um padrão de arquitetura de software que divide uma aplicação em três camadas, contemplando a manipulação dos dados (model), a interação do usuário (view) e o controle (controller). A camada controller lida com
  1. Acomunicações de fluxo da aplicação.
  2. Bsolicitações de entrada.
  3. Coperações de lógica de negócios.
  4. Dnotificações de alteração aos observadores.
Revelar gabarito e comentário

GabaritoA — comunicações de fluxo da aplicaçã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”.

MVC (Model-View-Controller) – Responsabilidades da Camada Controller

Gabarito: letra A. No padrão MVC, a camada Controller gerencia o fluxo da aplicação: recebe as requisições do usuário (via View), interpreta-as, aciona o Model para realizar a lógica de negócios e seleciona a View adequada para exibir a resposta. Essa função de mediação e direcionamento é o que chamamos de "comunicações de fluxo da aplicação", conforme a descrição clássica do padrão.

O Controller atua como um intermediário, coordenando a interação entre Model e View. Ele não contém lógica de negócios (essa é responsabilidade do Model), nem se limita a apenas receber solicitações de entrada (isso é apenas parte do seu papel). Também não realiza notificações de alteração – quem notifica os observadores (Views) sobre mudanças de estado é o Model, através de um mecanismo de observer.

Fonte conceitual: As definições do padrão MVC, conforme amplamente documentado (por exemplo, no artigo original de Trygve Reenskaug e em literatura de engenharia de software), estabelecem que o Controller é responsável por gerenciar o fluxo de controle da aplicação.

1Função principal
Gerenciar fluxo da aplicação
Intermediar Model e View
2O que faz
Recebe entrada do usuário
Interpreta a requisição
Aciona o Model (lógica de negócios)
Seleciona a View para resposta
3O que NÃO faz
Lógica de negócios (é do Model)
Notificar observadores (é do Model)
Controller (MVC)
LEVELsoulevel.com.br
Controller (MVC): Função principal (Gerenciar fluxo da aplicação, Intermediar Model e View); O que faz (Recebe entrada do usuário, Interpreta a requisição, Aciona o Model (lógica de negócios), Seleciona a View para resposta); O que NÃO faz (Lógica de negócios (é do Model), Notificar observadores (é do Model))

Alternativa A — ✅ Correta ⟵ GABARITO

O Controller centraliza o fluxo de controle: ele recebe a entrada do usuário, decide qual ação executar, invoca o Model para processar os dados e, por fim, determina qual View renderizar o resultado. Isso é exatamente "comunicações de fluxo da aplicação".

Alternativa B — ❌ Incorreta

"Solicitações de entrada" descreve apenas uma das tarefas do Controller (receber a requisição), mas não abrange sua função completa de coordenar todo o fluxo, que inclui chamar o Model, selecionar a View e retornar a resposta. A alternativa é muito restrita.

Alternativa C — ❌ Incorreta

A lógica de negócios é de responsabilidade exclusiva do Model. O Controller não implementa regras de negócio; ele apenas as invoca através do Model. Confundir essas camadas é um erro clássico.

Alternativa D — ❌ Incorreta

Notificações de alteração são emitidas pelo Model para as Views (observadores) quando seu estado muda, seguindo o padrão Observer. O Controller não realiza notificações; ele apenas recebe entradas e comanda ações.

NÃO CAIA NESSA!

Para memorizar o papel de cada camada MVC, pense: Model = dados e regras de negócio; View = interface com o usuário (exibição); Controller = cérebro do fluxo (recebe, decide, coordena). Na prova, a banca costuma trocar as funções – sempre associe "fluxo/controle" ao Controller.

Link permanente: /questoes/qg270024