Padrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVC O que são padrões? "Cada padrão descreve um problema que ocorre freqüentemente em seu ambiente, e então descreve o cerne da solução para aquele problema, de um modo tal que você pode usar esta solução milhões de vezes, sem nunca fazer a mesma coisa repetida" Christopher Alexander (Arquiteto e Urbanista)
Padrões de Projeto WEB e o MVC Padrões de Projeto São Conceitos (não tecnologias). Resolvem problemas específicos. Devem conter: Nome, Exemplo, Contexto, Problema e Solução.
Padrões de Projeto WEB e o MVC Padrões GoF Gang-of-Four (Gangue-dos-Quatro) Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides Organização dos Padrões Propósito Criação Estrutural Comportamental Escopo Classes Objetos
Padrões de Projeto WEB e o MVC Organização dos Padrões GoF
Padrões de Projeto WEB e o MVC Interação entre Padrões Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
Padrões de Projeto WEB e o MVC O que é MVC? Aplicações Monolíticas Aplicações em duas camadas MVC (Model-View-Controller) Padrão de Arquitetura É um conceito Fácil manutenção Objetivos Frameworks
Padrões de Projeto WEB e o MVC Vantagens do MVC Reaproveitamento de código Facilidade de manutenção Integração de equipes e/ou divisão de tarefas Camada de Persistência independente Implementação de segurança Facilidade na alteração da interface da aplicação
Padrões de Projeto WEB e o MVC Camadas Model Bean DAO Actions View Controller
Padrões de Projeto WEB e o MVC Model Bean Entidade Segurança Encapsulamento Vantagens
Padrões de Projeto WEB e o MVC Model DAO Data Access Object Persistência Portabilidade Independência
Padrões de Projeto WEB e o MVC Model Action Regras do Negócio Integra Bean, DAO e Views
Padrões de Projeto WEB e o MVC View Ajax Templates Web - Standards
Padrões de Projeto WEB e o MVC Controller Segurança Controlar fluxo da aplicação Inicia e finaliza o fluxo
Padrões de Projeto WEB e o MVC Fluxo da aplicação MVC
JSP & Servlets Padrão MVC com JSP e Servlets
Por que este modelo não vingou?
Sistema e Requisitos Para que um sistema de informação alcance o objetivo para o qual foi desenvolvido deve satisfazer certos interesses específicos os requisitos sejam eles funcionais ou não funcionais
Tipos de Requisitos Interface Recuperação de Dados Regras de Negócio Orientação a Objeto Modelagem
O que ocorre se requisitos estiverem acoplados?
Requisitos Acoplados
Requisitos Acoplados Problemática Dificuldade de Manutenção Ex: Se o video queimar, tem que colocar tudo no conserto Difícil Evolução Interface Recuperação De Dados Regras de Negócios
Funcionalidades Acopladas Problemática Interface Recuperação De Dados Sistemas Regras de Negócios
Separação de Interesses (SoC) Melhor maneira de criar sistemas gerenciáveis Separação de interesses, Parnas (1972) Modularização Por quê? Ex: Não se pode assumir que uma lógica de negócios somente será acessada por uma única interface Requisitos sempre mudam
O que é um padrão de projeto?
O padrão Model-View-Controller Como os Requisitos sempre mudam é melhor que ocorra a separação da lógica de negócios da apresentação Lógica de Negócios Apresentação Nunca se deve assumir que uma lógica de negócios somente será acessada por uma aplicação web
O padrão Model-View-Controller Modelo Representa a lógica do negócio Aloja as entidades da aplicação Pode interagir com a base de dados Visão Responsável por exibir as informações ao usuário Controle Faz o meio de campo 12
O padrão Model-View-Controller JSP e Servlets SEM MVC Podemos considerar como o nosso primeiro exemplo de Servlet Tudo estava no Servlet
O padrão Model-View-Controller JSP e Servlets com MVC MVC retira a lógica de negócios e a interface de dentro dos servlets, e põe em 2 camadas, a Modelo, usando classes Java simples e a Visão, com JSPs, respectivamente Os servlets atuarão como a camada de Controle
MVC no mundo dos CONTROLLER (Controlador) Recupera a entrada do usuário a partir da requisição e o traduz para o modelo. Diz ao modelo para se atualizar e disponibiliza um novo estado para a visão VIEW (Visão) Responsável pela apresentação. Recupera o estado do modelo através do controle. Também obtém a entrada do usuário e repassa para o controle Servlets e JSPs MODEL (Modelo) Guarda a lógica e o estado do negócio. Conhece as regras para recuperar e alterar o estado. É a parte do sistema que interage com a base de dados