Questão de Arquitetura de Software — MVC (Model-view-controller) — COMPERVE - UFRN 2024
Arquitetura de Software›MVC (Model-view-controller)
Código
qg104296
Banca
COMPERVE - UFRN
Órgão
UFRN
Ano
2024
Nível
Médio
Cargo
COMPERVE - - Técnico em Tecnologia da Informação (Sistemas)
O padrão arquitetural MVC (Model-View-Controller) sugere uma divisão de responsabilidades entre as partes de um software. Inicialmente, o MVC foi pensado no desenvolvimento Desktop, mas se popularizou no desenvolvimento Web. Em relação ao MVC, considere as afirmativas abaixo.I Atualmente, o MVC é conhecido como padrão de portas e adaptadores.II O principal objetivo do MVC é abstrair o acesso ao banco de dados, possibilitando o uso de frameworks como Hibernate em Java ou Django ORM em Python.III O MVC promove o princípio da separação de conceitos (separation of concerns).IV Um benefício do MVC é separar os componentes de apresentação do resto da aplicação.Das afirmativas, estão corretas
AIII e IV.
BI e IV.
CII e III.
DI e II.
Revelar gabarito e comentário▾
GabaritoA — III e IV.
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 A. Apenas as afirmativas III e IV estão corretas. O MVC promove o princípio da separação de conceitos (separation of concerns) e separa os componentes de apresentação do restante da aplicação. As afirmativas I e II são falsas: o padrão portas e adaptadores é a Arquitetura Hexagonal, não o MVC; e o principal objetivo do MVC não é abstrair acesso a banco de dados, mas sim dividir responsabilidades entre Model, View e Controller.
Afirmativa
Correta?
Justificativa
I — MVC é conhecido como padrão de portas e adaptadores
❌ Incorreta
O termo "portas e adaptadores" refere-se à Arquitetura Hexagonal, não ao MVC.
II — Principal objetivo do MVC é abstrair acesso a banco de dados
❌ Incorreta
O objetivo central é a separação de responsabilidades (Model, View, Controller); abstração de banco é consequência, não finalidade.
III — MVC promove separação de conceitos (separation of concerns)
✅ Correta
Cada camada (Model, View, Controller) tem responsabilidades bem definidas, facilitando manutenção e teste.
IV — Benefício do MVC é separar componentes de apresentação do resto da aplicação
✅ Correta
A View (apresentação) é isolada do Model e Controller, permitindo alterações na interface sem afetar a lógica de negócio.
MVC (Model-View-Controller): Objetivo principal (Separação de responsabilidades, Abstrair acesso a banco de dados); Princípio (Separation of concerns); Benefício (Isola apresentação do resto); Não é (Padrão portas e adaptadores (Hexagonal))
Afirmativa I — ❌ Incorreta
O MVC não é conhecido como "padrão de portas e adaptadores". Esse termo refere-se à Arquitetura Hexagonal (também chamada de ports and adapters), um padrão diferente focado em isolar o núcleo da aplicação de tecnologias externas. O MVC foi criado na Xerox PARC na década de 1970 e não possui essa denominação. A banca tenta confundir o candidato associando nomes de padrões distintos.
Afirmativa II — ❌ Incorreta
O principal objetivo do MVC é a separação de responsabilidades em três camadas (Model, View, Controller), e não especificamente abstrair acesso a banco de dados. Embora a camada Model possa utilizar frameworks ORM como Hibernate ou Django ORM para persistência, essa é uma consequência, não a finalidade central do padrão. A afirmativa reduz o escopo do MVC a uma funcionalidade que é apenas um dos possíveis usos do Model.
Afirmativa III — ✅ Correta
O MVC é fundamentado no princípio da separação de conceitos (separation of concerns). Cada camada tem responsabilidades bem definidas: o Model gerencia dados e regras de negócio, a View cuida da apresentação e o Controller intermedia as interações do usuário. Essa divisão facilita a manutenção, o teste e a evolução do software.
Afirmativa IV — ✅ Correta
Um dos principais benefícios do MVC é isolar os componentes de apresentação (View) do restante da aplicação (Model e Controller). Isso permite que a interface do usuário seja alterada sem impactar a lógica de negócio, além de possibilitar múltiplas visualizações para o mesmo modelo de dados.
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa A afirma que apenas III e IV estão corretas. Conforme analisado, as afirmativas III e IV são verdadeiras, enquanto I e II são falsas. Portanto, esta é a combinação correta.
Alternativa B — ❌ Incorreta
A alternativa B aponta I e IV como corretas. No entanto, a afirmativa I é falsa (MVC não é padrão de portas e adaptadores). Apesar de IV ser verdadeira, a presença de I invalida a alternativa.
Alternativa C — ❌ Incorreta
A alternativa C indica II e III como corretas. A afirmativa II é falsa (o objetivo principal do MVC não é abstrair banco de dados), mesmo que III seja verdadeira. Logo, a combinação está incorreta.
Alternativa D — ❌ Incorreta
A alternativa D considera I e II como corretas. Ambas são falsas, tornando a alternativa totalmente equivocada.
NÃO CAIA NESSA!
A banca explora duas confusões comuns: (1) trocar o nome do MVC pelo padrão de portas e adaptadores (Arquitetura Hexagonal) — são conceitos distintos; (2) atribuir ao MVC o objetivo de abstrair banco de dados, quando na verdade seu foco é a separação de responsabilidades. Lembre-se: o Model pode usar ORM, mas isso não define o padrão.
NÃO CAIA NESSA!
Para questões sobre MVC, foque no tripé: Model (dados/regras), View (apresentação), Controller (intermediação). O princípio central é a separação de conceitos. Não confunda com outros padrões como Hexagonal, MVP ou MVVM.