MVC - Model View Controller

Setembro 12, 2008 on 2:09 pm | In Informatica, php, Tutorial |

MVC é uma arquitetura de informação, um Design Pattern como os gringos falam. A idéia de se ter uma metodologia para conduzir seu sistema é a melhoria de re-uso do código e a facilidade de melhorias, novas características e novas mudanças, isso tudo pode ser resolvido com o MVC. Mas vamos ao que ele realmente significa.

View

- É a interface do usuário, é a renderização dos dados do Model afim de que o usuário possa interagir com o sistema, as famosas telas.

Model

- Model é a camada de lógica do MVC, aqui estarão nossas lógicas tanto quanto para apresentação, tanto quanto para armazenamento, eu diria que esta tudo contido aqui, pois por exemplo se pensarmos num sistema que trabalha com base de dados (o MVC não especifica como trabalhar) é presumido que a logica deste esteja encapsulado aqui, em outras palavras é aqui que o sistema vai acontecer

Controller

- O controller processa e responde a eventos dos usuários (GET, POST e dentre outros), podendo alterar o estado do Model

Vamos a alguns desenhos para vocês entenderem melhor, nos desenhos abaixo segue um pouco como foi a evolução, como você pode encontrar alguns aplicativos por ae e qual a melhor maneira de se trabalhar.
Os diagramas foram fornecidos por Guilherme Blanco (guilhermeblanco[ARROBA]hotmail[PONTO]com)

MVC

O desenho acima é implementado por diversos aplicativos pela web, ele segue o modelo onde do View é enviado informaçõoes ao Controller, o Controller então chama o Model que sua vez passa informações diretamente para o View e o chama no 4o passo. Uma metodologia bem primária, digo isto pois ela começou dessa maneira (não houve evolução).

MVC_World_1

No caso do diagrama acima é a proposta do co-criador Martin Fowler, onde temos o View chamando/enviando os dados ao Controller, o Controller por sua vez extrai dados do Model e então chama o View, veja que neste caso o controlador faz seu papel de controlador da aplicação muito bem, então no passo 4 o View so extrai dados do Model caso necessite para construção da tela (listagem e afins).

MVP_last_1.png

Neste ultimo diagrama, temos o ultimo apresentando pelo Martin Fowler, que seria uma evolução do anteriormente, este modelo ainda subdivide-se em outro, dependendo da aplicação que será necessária construir, irei falar deles mais para frente, neste modelo MVC o controlle é chamado de Apresentador, O view para para ele os dados, então a camada de apresentação (controle) chama o Model, extrai os dados do Model e então passa e chama a camada View. (Neste caso em ideial o uso da chamada para o view é quase como o uso do smarty).

Conclusões? O MVC é um modelo, uma metodologia para desenvolvimento de software que organiza nossas aplicações em 3 cadamas, ela basicamente nos da a possibilidade de re-uso de código muito efetivo, agilidade no desenvolvimento (uma vez estrutra pronta fica rápido colocar mais funcionabilidades).

Ao utilizar o padrão seria interessante você utilizar este ultimo modelo proposto, e enteder o que o Martin Fowler diz a respeito e como ele quebrou esse diagrama em outros, o que vou explicar em outras dicuções, espero ter ajudado ao pessoal entender o que é MVC, para que serve e como funciona.

Observação, um pouco de história: O MVC originalmente foi criado por Trygve´s para linguagem smalltalk, anos depois o Martin Fowler começou evoluir a idéia do MVC para Web, aplicativos GUI e outros.


6 Comments »

RSS feed for comments on this post. TrackBack URI

  1. Que massa, estudei isto na faculdade… nem me lembrava direito, deu pra relembrar um pouco.

    Comment by OiYes — Setembro 14, 2008 #

  2. Cara já varri a net inteira, li varios artigos mas o seu foi o melhor de todos. Apesar de faltar exemplos em codigo, o que não me fizeram falta. Seu post tá muito bom! Parabéns!

    Comment by Gustavo — Outubro 31, 2008 #

  3. Muito obrigado… ainda irei continuar o assunto falando sobre a contrução de um framework e/ou um estrutra para utilizar, ai irei dar alguns exemplos, por enquanto a falta de tempo não deixou.

    Abraços

    Comment by silici0 — Outubro 31, 2008 #

  4. boa silicio
    \o

    Comment by Rafael Lucio — Dezembro 9, 2008 #

  5. Parabéns, muito bom e bem explicativo seu texto. Estou com dificuldades em fazer diagramas de classes baseados no modelo mvc. Será que você ou alguém tem algum exemplo para me enviar? meu email é thaispacienza@gmail.com
    Obrigada!

    Comment by Thaís — Janeiro 5, 2009 #

  6. […] Bom, eu irei na verdade aqui dar sequencia ao meu modelo de aplicação MVC, se você não conhece pode dar uma lida neste Post, seguindo a ideia vamos agora partir da ideia do layout de diretorios para nossa aplicação, usando Url Amigaveis, primeiro temos que ter em mente que poderemos ter diversos App, ou aplicativos que funcionarão como modulos (ex: Admin, Cliente, Contas, RH e assim vai) e para cada modulo estará o modelo MVC ( ou MVP ). […]

    Pingback by Silici0 :: Blog » Layout de diretorios — Janeiro 11, 2010 #

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>


 

 Assine o feed