Você está na página 1de 2

Model-view-controller (MVC)

um padro de arquitetura de software. Com o aumento da complexidade das aplicaes desenvolvidas torna-se fundamental a separao entre os dados (Model) e o layout (View). Desta forma, alteraes feitas no layout no afetam a manipulao de dados, e estes podero ser reorganizados sem alterar o layout. O model-view-controller resolve este problema atravs da separao das tarefas de acesso aos dados e lgica de negcio, lgica de apresentao e de interao com o utilizador, introduzindo um componente entre os dois: o Controller. MVC usado em padres de projeto de software, mas MVC abrange mais da arquitetura de uma aplicao do que tpico para um padro de projeto.

Descrio do Padro
MVC diz como os componentes da aplicao interagem, sendo considerado como um Design Pattern. Note: A partir do momento em que dividimos os nossos componentes em Camadas podemos aplicar o MVC nestas. Geralmente isto feito definindo a Camada de Negcios como o Model, a Apresentao como a View. O componente Controller exige um pouco mais de controle. Logo, cuidado para no confundir MVC com separao de camadas. Camadas dizem como agrupar os componentes. O MVC diz como os componentes da aplicao interagem. O MVC baseia-se em 2 princpios fortes. - O Controller Despacha as Solicitaes ao Model; - A View observa o Model;

Model
A representao "domnio" especfica da informao em que a aplicao opera. Por exemplo, aluno, professor e turma fazem parte do domnio de um sistema acadmico. comum haver confuso pensando que Model um outro nome para a camada de domnio. Lgica de domnio adiciona sentido a dados crus (por exemplo, calcular se hoje aniversrio do usurio, ou calcular o total de impostos e fretes sobre um determinado carrinho de compras).

Muitas aplicaes usam um mecanismo de armazenamento persistente (como banco de dados) para armazenar dados. MVC no cita especificamente a camada para acesso aos dados, porque subentende-se que estes mtodos estariam encapsulados pelo Model.

View
"Renderiza" o model em uma forma especfica para a interao, geralmente uma interface de usurio.

Controller
Processa e responde a eventos, geralmente aes do usurio, e pode invocar alteraes no Model. l que feita a validao dos dados e tambm onde os valores postos pelos usurios so filtrados. MVC muito visto tambm em aplicaes para Web, onde a View geralmente a pgina HTML, e o cdigo que gera os dados dinmicos para dentro do HTML o Controller. E, por fim, o Model representado pelo contedo de fato, geralmente armazenado em bancos de dados ou arquivos XML. Ainda que existam diferentes formas de MVC, o controle de fluxo geralmente funciona como segue: O usurio interage com a interface de alguma forma (por exemplo, o usurio aperta um boto) O Controller manipula o evento da interface do usurio atravs de uma rotina pr-escrita. O Controller acessa o Model, possivelmente atualizando-o de uma maneira apropriada, baseado na interao do usurio (por exemplo, atualizando os dados de cadastro do usurio). Algumas implementaes de View utilizam o Model para gerar uma interface apropriada (por exemplo, mostrando na tela os dados que foram alterados juntamente com uma confirmao ). O View obtm seus prprios dados do Model. O Model no toma conhecimento direto da View. A interface do usurio espera por prximas interaes, que iniciaro o ciclo novamente. Existe tambm uma forma de interpretao do padro MVC que : View - Pginas em formato com resposta HTML (JSP,ASP,PHP). Controller - Controle da regra de negcio. Model - representao dos elementos do seu domnio e interao com as ferramentas de persistncia. Essa interpretao comum quando o sistema muito pequeno (cadastro de livro para biblioteca) ou a linguagem de programao no oferece um framework amigvel para o trabalho (Ruby, Coldfusion).