Padrão MVC
-
Upload
shirley-allen -
Category
Documents
-
view
28 -
download
3
Transcript of Padrão MVC
Prof. Paulo Henrique
Padrão MVC
MODEL-VIEW- CONTROLLER
MVC – Model-View-Controller
• Padrão arquitetural• Proposto em 1979 por Trygve Reenskaug• Evolução da Arquitetura em Camadas
1- Tier =>Tudo Junto!2- Tier => Dados Separados3- Tier => Apresentação Separada
da Lógica de Negócio
MVC- Contexto
Complicações do 3-Tier
• Uma mesma aplicação pode possuir diferentes visões dos seus dados e serviços
• Navegadores distintos, acesso móvel• Controle de Acesso, Personalização
• O modelo dos dados pode evoluir e não se deseja
afetar a suas diversas formas de visualização• Visões distintas querem possuir dados atualizados
MVC – Model-View-ControlDivisão da aplicação em três grandes
“componentes”:• Model
• define e gerencia o domínio da informação • notifica observadores sobre mudanças nos dados.
• View • Representa a camada de apresentação dos dados e
pode possuir várias versões distintas• Controller
• Realiza a comunicação e encapsula a comunicação entre o modelo e a visão adequada
• Atualiza o modelo
MVC – EstruturaMétodos
Eventos
MVC – Model (Modelo)• Representa a camada de regra de negócios e
encapsula os dados• Representa as estruturas de dados e as
operações que atuam nestes dados• Contém o estado corrente da aplicação
• Em uma aplicação orientada a objetos, constitui as classes de objetos da aplicação que implementam as funcionalidades da aplicação
• Operação de saque• Saque e atualização do saldo da conta de um
usuário estariam “neste componente”
MVC – Visão (View)
• Recebe a entrada de dados dos usuários e os eventos de interação
• Implementam exclusivamente a lógica de apresentação dos dados em um formato apropriado para os usuários.
• A mesma informação pode ser apresentada de maneiras diferentes
• Grupos de usuários com requisitos diferentes
MVC – Controller (Controlador)
• É responsável pelo fluxo da aplicação• Interpreta os eventos vindos dos usuários
(repassados pelas View) e define como que métodos do modelo serão chamados
• Funciona como um mediador entre a camada View e o modelo
• é ele, portanto, que permite a adição de novas View distintas
MVC – Estrutura
MVC e a Web
Complicações do 3-Tier
• Uma mesma aplicação pode possuir diferentes visões dos seus dados e serviços
• Navegadores distintos, acesso móvel• Controle de Acesso, Personalização
• O modelo dos dados pode evoluir e não se deseja afetar a suas diversas formas de visualização
• Visões distintas querem possuir dados atualizados
MVC e a Web
MVC e a Web• O trio Servlet-JSP-Beans com MVC
• Possibilitou uma arquitetura extensível e com clara separação dos interesses
MVC e Web - Frameworks existentes
Diversos frameworks nasceram para facilitar a configuração e a implementação do MVC para Web• ActionScript 3
• PureMVC• .NET
• ASP.NET MVC - oficial da Microsoft• Java
• Apache Struts• Spring MVC• JSF
• PHP• Zend Framework
• Ruby• Ruby on Rails
Implementando MVC com JSP/Servlet• Cliente – Browser Web• JSP – Implementa a camada de Visão• Servlet – Recebe e processa a requisição. Instancia o
controlador correspondente à requisição• BD - Implementa o modelo. Fornece os métodos
responsáveis por acessar o banco de dados, inserir e recuperar valores
Implementando MVC com JSP/Servlet
• Implementando o Modelo• Criar uma classe que encapsule o acesso a uma
tabela do banco de dados• Geralmente é feito utilizando-se o padrão DAO
(Data Access Object)• Esse padrão gerencia a conexão e manipula
registros no banco de dados
Implementando MVC com JSP/Servlet
• Implementando o Controlador• Criar um servlet controlador para cada entidade
relevante no banco• Possui métodos de CRUD da entidade a que ele
corresponde
• Implementando a Visão• Criar JSPs que chame o servlet controlador
específico, passando como parâmetro a ação desejada