Questão de Arquitetura de Software — Arquitetura de Software — IDCAP 2024
Arquitetura de Software›Arquitetura de Software
Código
qg227566
Banca
IDCAP
Órgão
Prefeitura de Serra - ES
Ano
2024
Nível
Superior
Cargo
Analista em Tecnologia da Informação: Desenvolvimento
O MVC é utilizado em muitos projetos devido a arquitetura que possui, o que possibilita a divisão do projeto em camadas muito bem definidas. Nesse sentido, assinale a alternativa CORRETA:
AA comunicação entre interfaces e regras de negócios é definida através de um modelo, que separa as camadas. Quando um evento é executado na interface gráfica, como um clique em um botão, a interface se comunicará com o Model, que por sua vez se comunica com as regras de negócios.
BA utilização do padrão MVC traz como benefício juntar as regras de negócios da lógica de apresentação, que é a interface com o usuário.
CO Model realiza a operação matemática e retorna o valor calculado para o Controller, que também é o único que possui conhecimento da existência da camada de visualização.
DUma das características de um padrão de projeto é poder aplicá-lo em sistemas distintos. O padrão MVC pode ser utilizado em vários tipos de projetos como desktop e web, exceto mobile.
EImagine uma aplicação financeira que realiza cálculos de diversos tipos, como os de juros. Você pode inserir valores para os cálculos e também escolher que tipo de cálculo será realizado. Isto tudo é feito pelo Controlador, que para o modelo MVC é conhecida como Controller.
Revelar gabarito e comentário▾
GabaritoC — O Model realiza a operação matemática e retorna o valor calculado para o Controller, que também é o único que possui conhecimento da existência da camada de visualizaçã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)
Gabarito: letra C. No padrão MVC, o Controller é o intermediário que conhece tanto o Model quanto a View; o Model executa a lógica de negócio e retorna dados ao Controller, que atualiza a View. Essa é a descrição correta do fluxo e da atribuição de responsabilidades (conforme o conceito clássico do padrão).
O padrão MVC separa a aplicação em três camadas: Model (dados e regras de negócio), View (apresentação) e Controller (controle das interações). O Controlador recebe as entradas do usuário, aciona o Model e coordena a View.
MVC (Model-View-Controller): Model (Dados e regras de negócio, Executa operações, Retorna resultado ao Controller); View (Apresentação (interface), Não conhece o Model, Repassa ações ao Controller); Controller (Intermediário, Conhece Model e View, Recebe entradas do usuário, Aciona o Model, Atualiza a View)
Alternativa A — ❌ Incorreta
Afirma que a interface (View) se comunica diretamente com o Model. No MVC, a View repassa as ações do usuário ao Controller, que então interage com o Model. O Model não é chamado diretamente pela View. A descrição confunde os papéis.
Alternativa B — ❌ Incorreta
Diz que o benefício do MVC é "juntar as regras de negócios da lógica de apresentação". Na realidade, o MVC promove a separação entre essas camadas (separação de interesses). Juntar seria uma violação do padrão.
Alternativa C — ✅ Correta ⟵ GABARITO
Descreve corretamente o fluxo: o Model realiza a operação (regra de negócio) e retorna o resultado ao Controller, e o Controller é o único componente que tem conhecimento da existência da View. Isso está alinhado com a definição clássica de MVC, onde o Controlador atua como mediador e conhece as outras duas camadas, enquanto o Model e a View são independentes entre si.
Alternativa D — ❌ Incorreta
Afirma que o MVC não pode ser usado em aplicações móveis. É falso: o MVC é amplamente utilizado em mobile, por exemplo, no iOS (UIKit segue uma variação do MVC) e em frameworks como Android (embora haja variações). O padrão é aplicável a desktop, web e mobile.
Alternativa E — ❌ Incorreta
Diz que o Controller realiza os cálculos (lógica de negócio). No MVC, a lógica de negócio fica no Model; o Controller apenas recebe as entradas e delega ao Model. A função de calcular juros é do Model, não do Controller.