Aula 25 e 26

Model-View-Controller (MVC)

Objetivo
Separar dados ou lógica de negócios (Model) da interface do usuário (View) e do fluxo da aplicação (Control).
A idéia é permitir que uma mesma lógica de negócios possa ser acessada e visualizada através de várias interfaces.
Na arquitetura MVC, a lógica de negócios (chamaremos de Modelo) não sabe de quantas nem quais interfaces com o usuário estão exibindo seu estado.
Com as diversas possibilidades de interfaces que conhecemos hoje, a MVC é uma ferramenta indispensável para desenvolvermos sistemas.

Solução com a MVC:

A aplicação é dividida em três partes:

- Model: É a camada que contém a lógica da aplicação. É responsável por conter as regras de negócios e, para sistemas persistentes, todo o controle de acesso e tratamento de dados vindos do banco. Recebe as requisições e geram respostas a partir do que foi pedido. Vamos imaginar um sisteminha de blog. Quando queremos cadastrar ou ver algum post, o Model recebe esta requisição, acessa o banco (ou qualquer outra fonte de dados), faz as operações necessárias e retorna a resposta para alguém que saberá tratar. A função dele termina por aí.

- View: É a camada de apresentação ao usuário. É a interface que proporcionará a entrada de dados e a visualização das respostas geradas. Em aplicações web é representado pelo HTML que é processado e mostrado pelo navegador. Geralmente contém formulários de entrada de dados e tabelas, grids, etc. para mostrar as respostas. Essa camada não contém lógicas de negócios, portanto todo o processamento é feito pela Model e então a resposta é repassada para o View. No caso do nosso sisteminha de blog, o View representaria a tela de entrada de uma nova postagem ou uma página listando todos os posts feitos recentemente.

- Controller: Já falamos de quem recebe as requisições e de quem as manda. Mas temos que concordar que tudo isso viraria uma grande bagunça se não houvesse alguém para organizar tudo isso. Essa é a função do controller. Essa camada funciona como um intermediário entre a camada de apresentação e a camada de negócios. É função do controller (como o própio nome já diz) coodenar o envio e o recebimento de requisições entre o Model e o View.

Referências:
http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/arqu/mvc/mvc.htm

Nenhum comentário: