14.1. Model View Controller
Modelo independente; visão exibe; controlador recebe a entrada.
Resumo
- Divide a UI em três papéis: Model (domínio), View (exibição), Controller (entrada).
- Separação 1 (essencial): apresentação × modelo. Modelo não depende da UI; testável e reutilizável.
- Separação 2 (secundária): visão × controlador. Rara em UIs ricas, natural na web.
- Permite várias visões do mesmo modelo e trocar a UI sem mexer no domínio.
- Na web: controlador de entrada (Page/Front Controller) + visão (Template/Transform View).
Perguntas-chave
responda de cabeça, depois abraQual separação do MVC é mais importante?
Separar a apresentação do modelo.
Por que a separação visão × controlador é secundária?
Em muitas UIs ricas visão e controlador ficam juntos; na web ela aparece de forma natural.
O que o modelo sabe sobre a visão?
Nada. A dependência vai da apresentação para o modelo.
Exercícios de fixação
0/5 respondidas1.
Um objeto
Pedido tem método toHtml() com tags de tabela. Qual princípio do MVC foi violado?2.
Qual papel recebe a entrada do usuário no MVC?
3.
Uma empresa quer o mesmo cadastro em web, app desktop e API. O que o MVC garante?
4.
Por que Fowler considera a separação visão × controlador menos importante?
5.
No MVC web, que padrões Fowler usa para o 'C' e para o 'V'?