Questão de Engenharia de Software — Frameworks — Quadrix 2024
- Código
- qg347317
- Banca
- Quadrix
- Órgão
- CFP
- Ano
- 2024
- Nível
- Superior
- Cargo
- Analista Técnico/TI/Desenvolvimento
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO. No padrão MVC, quem renderiza a saída visual da aplicação é a View (Visão), não o Model. O Model é responsável por gerenciar os dados e as regras de negócio da aplicação, mantendo o estado e notificando a View sobre alterações. Essa é a definição clássica do padrão, amplamente cobrada em concursos.
O padrão MVC (Model-View-Controller) é um dos estilos arquiteturais mais conhecidos e cobrados em provas de Engenharia de Software. Ele separa a aplicação em três componentes com responsabilidades bem definidas, o que promove alta coesão e baixo acoplamento. Vamos entender cada um:
Model (Modelo): é o componente que representa o estado da aplicação e contém as regras de negócio. Ele gerencia os dados, acessa fontes de dados (como bancos de dados) e implementa a lógica de processamento específica da aplicação. O Model não sabe nada sobre a interface do usuário; ele apenas notifica a View quando seus dados mudam.
View (Visão): é responsável pela apresentação dos dados ao usuário. Ela renderiza a saída visual, ou seja, exibe as informações vindas do Model. A View é a interface com o usuário, e sua função é exclusivamente exibir os dados, sem processar regras de negócio.
Controller (Controlador): atua como intermediário entre a View e o Model. Ele recebe as entradas do usuário (cliques, teclas, etc.), processa essas requisições (quando necessário) e coordena o fluxo de dados entre a View e o Model. O Controller seleciona a View apropriada e solicita ao Model as informações necessárias.
A confusão entre as responsabilidades de Model e View é uma pegadinha clássica de banca. Muitas questões trocam os papéis: dizem que o Model renderiza a saída visual, quando na verdade isso é função da View. O Model é o "cérebro" da aplicação (dados e regras), enquanto a View é a "cara" (apresentação).
Para fixar, veja a tabela comparativa:
Componente | Responsabilidade principal | Exemplo prático |
|---|---|---|
Model | Gerenciar dados e regras de negócio | Calcular o total de um pedido, validar CPF, acessar o banco de dados |
View | Renderizar a saída visual (interface) | Exibir uma lista de produtos, mostrar um formulário de login |
Controller | Receber entradas do usuário e coordenar o fluxo | Processar o clique em um botão, chamar o Model e atualizar a View |
No contexto de frameworks como Vue.js e Alpine.js, o padrão MVC é frequentemente adaptado. O Vue.js, por exemplo, é um framework progressivo que implementa o padrão MVVM (Model-View-ViewModel), uma variação do MVC. No MVVM, a ViewModel substitui o Controller e é responsável por expor os dados do Model para a View, facilitando a reatividade. O Alpine.js, por sua vez, é uma ferramenta leve que permite adicionar comportamento reativo a interfaces HTML, seguindo uma abordagem similar ao MVVM. Mas, independentemente da variação, a responsabilidade de renderizar a saída visual permanece com a View (ou com a ViewModel, que prepara os dados para a View).
A banca Quadrix, nesta questão, explora exatamente a confusão entre Model e View. O enunciado afirma que o Model é responsável por renderizar a saída visual, o que é incorreto. A View é quem faz isso. O Model apenas fornece os dados que serão exibidos.
A afirmação está errada porque atribui ao Model uma responsabilidade que é da View. No MVC, o Model é o componente que gerencia os dados e as regras de negócio, enquanto a View é responsável por renderizar a saída visual da aplicação. O Model não interage diretamente com o usuário; ele apenas mantém o estado e notifica a View sobre mudanças, para que ela se atualize. Portanto, a frase "O model, componente do MVC, é responsável por renderizar a saída visual da aplicação" é falsa.
Para não errar em questões sobre MVC, lembre-se do papel de cada componente: Model = dados e regras de negócio; View = apresentação (renderização); Controller = intermediário (recebe entradas e coordena). Quando a questão falar em "renderizar", "exibir", "interface", a resposta é View. Quando falar em "regras de negócio", "estado", "dados", a resposta é Model. Essa distinção é a chave para acertar a maioria das questões sobre o tema.
Gabarito: ERRADO
Link permanente: /questoes/qg347317