Pular para o conteúdo principal

Questão de TI - Desenvolvimento de Sistemas — MVC (Model-View-Controller) — INSTITUTO AOCP 2024

TI - Desenvolvimento de SistemasMVC (Model-View-Controller)
Código
qa631175
Banca
INSTITUTO AOCP
Órgão
DPE MS
Ano
2024
Cargo
Ana Def ( )

A respeito do Padrão Arquitetural Model-View-Controller (MVC), analise as assertivas e assinale a alternativa que aponta as corretas.

 

I. Esse padrão consiste na separação dos dados, da apresentação e do controlador que realizará o gerenciamento das relações entre o modelo e a apresentação.

 

II. Uma de suas classes, denominada domínio, é independente da interface do sistema; com isso, a interface pode ser alterada sem afetar a classe de domínio.

 

III. A sequência das operações desse padrão é normalmente encapsulada na classe de controle.

 

IV. A classe de controle obtém informações das classes de interface e domínio, e a classe de interface também obtém informações das classes de controle e domínio.


  1. AApenas I, II e III.
  2. BApenas I, II e IV.
  3. CApenas II e III.
  4. DApenas I e IV.
  5. EI, II, III e IV.
Revelar gabarito e comentário

GabaritoE — I, II, 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”.

Padrão Arquitetural MVC (Model-View-Controller)

Gabarito: letra E — todas as assertivas (I, II, III e IV) estão corretas. O MVC é um padrão arquitetural que separa a aplicação em três componentes interligados — Model (dados/regras de negócio), View (apresentação/interface) e Controller (gerenciamento das interações entre Model e View) — e as quatro afirmativas descrevem corretamente essa estrutura e o fluxo de comunicação entre as classes.

O padrão MVC (Model-View-Controller) é um dos estilos arquiteturais mais difundidos no desenvolvimento de software, especialmente em aplicações web e desktop. Sua essência é a separação de responsabilidades (Separation of Concerns): cada componente tem um papel bem definido e as dependências entre eles são controladas para que a manutenção e a evolução do sistema sejam mais fáceis. O Model representa os dados e as regras de negócio, sendo totalmente independente da interface; a View é responsável pela apresentação desses dados ao usuário; e o Controller atua como o intermediário, recebendo as requisições do usuário, processando-as (com auxílio do Model) e devolvendo a resposta adequada à View.

A grande vantagem desse padrão é a baixa dependência entre as camadas. Como o Model não conhece a View, é possível alterar completamente a interface do sistema (por exemplo, migrar de uma interface desktop para uma web) sem que as regras de negócio sejam afetadas. Essa é a base da assertiva II, que fala da classe de domínio (Model) ser independente da interface. O Controller, por sua vez, encapsula a sequência de operações necessárias para atender a uma requisição — é ele que orquestra o fluxo, decidindo qual dado buscar no Model e qual apresentação devolver ao usuário (assertiva III).

Na prática, o fluxo típico do MVC funciona assim: o usuário interage com a View (por exemplo, clica em um botão); a View envia a ação para o Controller; o Controller consulta ou atualiza o Model; o Model retorna os dados ao Controller; e o Controller seleciona a View apropriada para exibir o resultado. Perceba que a View não acessa diretamente o Model — ela depende do Controller para obter os dados. Porém, em muitas implementações, a View também pode consultar o Model diretamente (especialmente em padrões como o MVC passivo ou o Model-View-Presenter), o que torna a assertiva IV correta ao afirmar que a classe de controle obtém informações das classes de interface e domínio, e a classe de interface também obtém informações das classes de controle e domínio.

A banca explora aqui um ponto que costuma gerar confusão: a direção das dependências. Muitos candidatos acreditam que a View nunca pode acessar o Model diretamente, mas isso não é uma regra absoluta do MVC — em diversas implementações (como no MVC clássico do Smalltalk ou em frameworks como o ASP.NET MVC), a View pode sim consultar o Model para exibir dados, embora o Controller seja o principal orquestrador. O que é inegociável é que o Model não conhece a View, garantindo a independência da camada de domínio. Guarde essa distinção: Model não depende de View; View pode depender de Model e Controller; Controller depende de ambos.

Assertiva

Descrição

Veredito

I

Separação dos dados, da apresentação e do controlador que gerencia as relações entre o modelo e a apresentação.

✅ Correta

II

A classe de domínio (Model) é independente da interface; a interface pode ser alterada sem afetar a classe de domínio.

✅ Correta

III

A sequência das operações do padrão é normalmente encapsulada na classe de controle (Controller).

✅ Correta

IV

A classe de controle obtém informações das classes de interface e domínio; a classe de interface também obtém informações das classes de controle e domínio.

✅ Correta

1Model (domínio)
Dados e regras de negócio
Independente da interface
2View (apresentação)
Interface com o usuário
Obtém dados do Controller e do Model
3Controller (controle)
Gerencia Model e View
Encapsula a sequência de operações
MVC (Model-View-Controller)
LEVELsoulevel.com.br
MVC (Model-View-Controller): Model (domínio) (Dados e regras de negócio, Independente da interface); View (apresentação) (Interface com o usuário, Obtém dados do Controller e do Model); Controller (controle) (Gerencia Model e View, Encapsula a sequência de operações)

Item I — ✅ Correto

A assertiva afirma que o padrão consiste na separação dos dados, da apresentação e do controlador que gerencia as relações entre o modelo e a apresentação. Isso é exatamente a definição do MVC: o Model (dados), a View (apresentação) e o Controller (gerenciador das relações entre Model e View). A separação em três componentes interligados é a essência do padrão, e o Controller é quem media a comunicação entre os outros dois. Portanto, a afirmativa está correta.

Item II — ✅ Correto

A assertiva diz que a classe de domínio (Model) é independente da interface do sistema, permitindo que a interface seja alterada sem afetar a classe de domínio. Isso é um dos principais benefícios do MVC: o Model encapsula as regras de negócio e os dados, sem nenhuma referência à View. Assim, é possível trocar a interface (por exemplo, de uma aplicação desktop para uma web) sem modificar a lógica de negócio. A afirmativa está correta.

Item III — ✅ Correto

A assertiva afirma que a sequência das operações do padrão é normalmente encapsulada na classe de controle. De fato, o Controller é responsável por orquestrar o fluxo de execução: ele recebe a requisição do usuário, decide qual operação realizar no Model e qual View renderizar como resposta. Essa sequência de passos (receber entrada, processar, selecionar a saída) é encapsulada no Controller, que atua como o "maestro" da aplicação. A afirmativa está correta.

Item IV — ✅ Correto

A assertiva afirma que a classe de controle obtém informações das classes de interface e domínio, e a classe de interface também obtém informações das classes de controle e domínio. Isso descreve corretamente o fluxo de comunicação no MVC: o Controller recebe entradas da View (interface) e consulta/atualiza o Model (domínio); a View, por sua vez, pode obter dados tanto do Controller (que lhe entrega o resultado processado) quanto diretamente do Model (em implementações que permitem essa consulta direta). Portanto, a afirmativa está correta.

Conclusão: todas as assertivas (I, II, III e IV) estão corretas, portanto a alternativa é a letra E.

Gabarito: letra E

Link permanente: /questoes/qa631175