Você está na página 1de 16

Instituto Federal de Educao, Cincia e

Tecnologia do Norte de Minas Gerais


Campus Januria.

AULA 07
MVC

Prof. Gustavo Linhares


Instituto Federal de Educao, Cincia e
Tecnologia do Norte de Minas Gerais
Campus Januria.

PROGRAMAO WEB II

Orientada a Objetos
Prof. Gustavo Linhares
MVC - Model View
Controller
o design Pattern mais conhecido de todos. Seus conceitos
remontam plataforma Smaltalk na dcada de 1970. Basicamente
uma aplicao que segue o pattern Model View Controller
dividida em trs camadas. As letras que compes o nome deste
pattern representam cada um desses aspectos.
MVC - Model View
Controller
O MVC surgiu por volta de 1970, escrito por Trygve
Reenskaug e outros. Teve sua primeira implementao
pblica, aparentemente, no Smalltalk-80.

Na poca, uma das primeiras (e principais)


publicaes a respeito foi "A Cookbook for Using the
Model-View-Controller User Interface Paradigm in
Smalltalk -80" de Glenn Krasner e Stephen Pope,
publicada em agosto de 1988.
INTENO
Desacoplar as regras de negcio da
interface de usurio permitindo que o
desenvolvimento, manuteno e testes
da aplicao de forma independente.
MOTIVAO

MVC foi criado como uma


soluo bvia para o problema
geral de dar aos usurios controle
sobre suas informaes, como visto
a partir de mltiplas perspectivas.
MOTIVAO

Segundo Trygve Reenskaug, a Model representa


o conhecimento, a View a exibio desse
conhecimento e o Controller a ligao do
usurio com o sistema que permitir que ele
(usurio) controle suas informaes sob vrias
perspectivas.
MOTIVAO
Assim, o grande objetivo ter uma
Model inteligente, representando
toda a lgica e conhecimento da
aplicao, uma View burra, apenas
exibindo esse conhecimento e um
Controller leve, ligando um com o
outro.
MODEL
Model significa modelo. Um modelo
um objeto que representa as
informaes do domnio de negcios
da aplicao. A camada de
Modelo pode ser representada por
um Domain Model ou um Active
Record, dentre outros.
VIEW

View significa visualizao. Nesta


camada, teremos a definio da
interface com o usurio, como os
campos sero organizados e
distribudos na tela.
Por Exemplo: se temos um cadastro de
pessoas, em algum lugar precisamos
definir com ser este formulrio, sua
estrutura. Esta representao pode ser
uma pgina HTML, por exemplo.
VIEW

A camada de visualizao(view) deve ser


responsvel somente pela visualizao,
no exercendo qualquer tipo de controle
no fluxo de execuo da aplicao, to
pouco dever conter lgica de negcios.
CONTROLLER

Controller significa controle. Nesta


camada teremos a manipulao dos
inputs do usurio, sua interpretao e a
execuo das tarefas correspondentes.
Esta camada formada por um
conjunto de objetos que recebem
informaes da View e tratam de
atualizar o modelo de dados(Model) de
acordo com a ao do usurio.
Vantagens
A separao da aplicao nesses trs aspectos
traz uma srie de vantagens ao desenvolvedor. A
separao entre o modelo de dados(Model) e a
visualizao (View), por exemplo, permite ao
desenvolvedor reutilizar um mesmo objeto de
modelo em diversas visualizaes diferentes.
Exempl
o
Para ficar mais claro, imagine uma listagem de
clientes e uma listagem de compras de um cliente,
ou uma listagem de clientes por cidade.
Todas so visualizaes diferentes, mas tratam de
um objeto de modelo de negcio em comum: o
cliente.
A camada de visualizao (View) deve se
preocupar com a disposio de objetos, com a
organizao visual, ao passo que o modelo deve
se preocupar com regras de negcios e interao
com o banco de dados.
Exemplo

As trs camadas so distintas, porm interagem umas com as


outras da maneira demonstrada pela Figura:
Exemplo
Um sistema MVC clssico ter uma classe
Controller para cada View existente, mas
esta abordagem no a nica existente.
Alguns frameworks frequentemente
mesclam View e Controller na mesma
camada, deixando-as diretamente
vinculadas.

Você também pode gostar