Questão de Programação — Programação Orientada a Objetos — Quadrix 2025
- Código
- qg603664
- Banca
- Quadrix
- Órgão
- SEDF
- Ano
- 2025
- Nível
- Superior
- Cargo
- Professor de Educação Básica: Informática
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO. A afirmação está incorreta porque, no padrão MVC (Model-View-Controller), a View deve conter apenas a lógica de apresentação, enquanto a lógica de negócio pertence ao Model (e, em parte, ao Controller). O Model não "separa apenas os dados" — ele encapsula também as regras de negócio e o estado da aplicação. A frase inverte a responsabilidade de cada componente, o que é uma pegadinha clássica em questões sobre MVC.
O padrão MVC (Model-View-Controller) é um dos estilos arquiteturais mais cobrados em concursos de TI. Ele organiza a aplicação em três componentes com responsabilidades bem definidas:
Model: representa os dados e a lógica de negócio. É responsável por acessar, manipular e validar os dados, além de aplicar as regras do domínio. Não conhece a interface com o usuário.
View: é a camada de apresentação. Exibe os dados ao usuário e captura as interações (cliques, digitação), mas não contém regras de negócio. Ela apenas renderiza o que o Model fornece e encaminha as ações do usuário ao Controller.
Controller: recebe as requisições do usuário, interpreta-as e coordena a interação entre View e Model. Ele decide qual lógica de negócio acionar e qual View renderizar em seguida.
A separação de responsabilidades é o coração do MVC: cada componente tem um papel único e bem definido. Isso promove baixo acoplamento e alta coesão, facilitando a manutenção e a evolução do software. Por exemplo, em uma aplicação web de e-commerce, o Model conteria as classes Produto, Carrinho e Pedido, com métodos como calcularTotal() e aplicarDesconto(). A View seria o HTML/CSS que exibe os produtos e o carrinho. O Controller seria o código que recebe o clique em "Adicionar ao carrinho", chama o método do Model e atualiza a View.
A afirmação do enunciado tenta confundir o candidato ao afirmar que a View pode conter lógica de negócio, justificando que o Model "separa apenas os dados". Isso é duplamente errado: primeiro, a View não deve conter lógica de negócio; segundo, o Model não é apenas um repositório de dados — ele encapsula as regras de negócio. Essa inversão de papéis é uma armadilha recorrente em provas, pois o candidato que não domina o conceito pode aceitar a premissa falsa.
Guarde a fronteira: View = apresentação; Model = dados + regras de negócio; Controller = orquestração. É exatamente nessa fronteira que a questão se decide.
A afirmação está errada porque atribui à View a lógica de negócio, o que viola o princípio fundamental do MVC. A View deve ser "burra" no sentido de não conter regras de negócio — ela apenas exibe dados e repassa ações. O Model, por sua vez, não "separa apenas os dados": ele encapsula também as regras de negócio, sendo a camada responsável pela lógica do domínio. Portanto, a premissa de que a View pode conter lógica de negócio é falsa, e a justificativa apresentada ("o modelo separa apenas os dados") também é incorreta.
A banca inverte os papéis do MVC: afirma que a View pode ter lógica de negócio e que o Model só guarda dados. Na verdade, a View é apenas apresentação, e o Model concentra dados e regras de negócio. Essa troca de responsabilidades é a armadilha clássica — fique atento a qualquer alternativa que misture as camadas.
Para questões de MVC, memorize a tríade: Model = dados + regras; View = apresentação; Controller = orquestração. Se uma alternativa disser que a View contém lógica de negócio, ou que o Model é só dados, está errada. Essa é a pegadinha mais comum no tema.
Gabarito: ERRADO.
Link permanente: /questoes/qg603664