Padrões de Projeto WEB e o MVC
-
Upload
almir-neto -
Category
Technology
-
view
9.777 -
download
2
description
Transcript of Padrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVC
Almir NetoOtávio Calaça Xavier
Almir Neto - [email protected] e Otávio Calaça - [email protected] 2
Padrões de Projeto WEB e o MVC
Grupo de Desenvolvedores PHP de Goiás
Lista de Discussão Certificações Troca de Conhecimentos Grupos de Estudo Encontros Palestras Eventos Networking
Almir Neto - [email protected] e Otávio Calaça - [email protected] 3
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)
Almir Neto - [email protected] e Otávio Calaça - [email protected] 4
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 eSolução.
Almir Neto - [email protected] e Otávio Calaça - [email protected] 5
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 Escopo
Classes Objetos
Propósito Criação Estrutural Comportamental
Almir Neto - [email protected] e Otávio Calaça - [email protected] 6
Padrões de Projeto WEB e o MVC
Organização dos PadrõesGoF
Almir Neto - [email protected] e Otávio Calaça - [email protected] 7
Padrões de Projeto WEB e o MVC
Interação entre Padrões
Almir Neto - [email protected] e Otávio Calaça - [email protected] 8
Padrões de Projeto WEB e o MVC
Observer
Comportamental de Objetos Objetivo
Definir uma dependência um-para-muitos entre objetos.
Uma mudança de estado em um objeto fará com que todos seus dependentes sejam notificados e atualizados automaticamente.
Almir Neto - [email protected] e Otávio Calaça - [email protected] 9
Padrões de Projeto WEB e o MVC
Observer
ProblemaComo garantir a atualização de objetos que
dependem de outro objeto sem que este saiba quais objetos dependem dele?
Observando-o.
Almir Neto - [email protected] e Otávio Calaça - [email protected] 10
Padrões de Projeto WEB e o MVC
Observer
Estrutura e Participantes
Almir Neto - [email protected] e Otávio Calaça - [email protected] 11
Padrões de Projeto WEB e o MVC
Observer
AplicabilidadeQuando desejamos fornecer várias visões
distintas de um mesmo objeto que funciona como um repositório de dados.
Quando uma mudança em um objeto exige mudanças em outros, e não são conhecidos quantos devem ser mudados.
Quando um objeto deve ser capaz de notificar outros objetos sem que estes sejam fortemente acoplados.
Almir Neto - [email protected] e Otávio Calaça - [email protected] 12
Padrões de Projeto WEB e o MVC
Singleton
Criação de Objeto Objetivo
Garantir que uma classe tenha uma única instância, e prover um ponto de acesso global a esta instância.
Almir Neto - [email protected] e Otávio Calaça - [email protected] 13
Padrões de Projeto WEB e o MVC
Singleton
Problema
Como garantir a existência de somente uma instância de uma classe em um sistema que necessite de tal controle?
Almir Neto - [email protected] e Otávio Calaça - [email protected] 14
Padrões de Projeto WEB e o MVC
Singleton
Estrutura e Participantes
Almir Neto - [email protected] e Otávio Calaça - [email protected] 15
Padrões de Projeto WEB e o MVC
Singleton
AplicabilidadeQuando deve existir exatamente uma instância
de uma classe, e ela deve ser acessível a partir de um ponto bem conhecido.
Quando deve haver somente um objeto que gerencie conexões com o banco de dados ou acesso a um arquivo de log.
Almir Neto - [email protected] e Otávio Calaça - [email protected] 16
Padrões de Projeto WEB e o MVC
Factory Method
Criação de Classe Objetivo
Definir uma interface para criar um objeto, mas deixar que subclasses decidam que classe instanciar
Permite que uma classe delegue a responsabilidade de instanciação às subclasses
Almir Neto - [email protected] e Otávio Calaça - [email protected] 17
Padrões de Projeto WEB e o MVC
Factory Method
ProblemaComo fazer quando há a necessidade de
criação de objetos do mesmo tipo porém com particularidades diferentes, sem alteração dos já existentes?
Adicionando Métodos de Fabricação.
Almir Neto - [email protected] e Otávio Calaça - [email protected] 18
Padrões de Projeto WEB e o MVC
Factory Method
Estrutura e Participantes
Almir Neto - [email protected] e Otávio Calaça - [email protected] 19
Padrões de Projeto WEB e o MVC
Factory Method
AplicabilidadeConsidere uma aplicação onde é possível criar
vários tipos de documentos diferentes Cada documento exige uma criação particular A classe Application é responsável por criar os
documentos Porém, a classe Application não tem como saber
antecipadamente as particularidades dos tipos de documentos a serem criados
Almir Neto - [email protected] e Otávio Calaça - [email protected] 20
Padrões de Projeto WEB e o MVC
Composite
Estrutural de Objeto Objetivo
Compor objetos em estruturas de árvore para representarem hierarquias partes-todo.
Permitir que clientes tratem de modo uniforme objetos individuais e suas composições.
Almir Neto - [email protected] e Otávio Calaça - [email protected] 21
Padrões de Projeto WEB e o MVC
Composite
ProblemaComo fazer quando se deseja trabalhar com
objetos primitivos e objetos recipientes da mesma forma?
Criando uma classe abstrata que representa tanto os componentes primitivos como os agregados.
Almir Neto - [email protected] e Otávio Calaça - [email protected] 22
Padrões de Projeto WEB e o MVC
Composite
Estrutura e Participantes
Almir Neto - [email protected] e Otávio Calaça - [email protected] 23
Padrões de Projeto WEB e o MVC
Composite
AplicabilidadeAplicações gráficas como editores de
programação visual que devem permitir a construção de diagramas complexos a partir de componentes simples.
Diferenças entre objetos simples e objetos compostos devam ser ignoradas. Ou seja, o cliente deve tratar objetos simples e compostos igualmente.
Almir Neto - [email protected] e Otávio Calaça - [email protected] 24
Padrões de Projeto WEB e o MVC
Duvidas??
Almir Neto - [email protected] e Otávio Calaça - [email protected] 25
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
Almir Neto - [email protected] e Otávio Calaça - [email protected] 26
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
Almir Neto - [email protected] e Otávio Calaça - [email protected] 27
Padrões de Projeto WEB e o MVC
Camadas
ModelBeanDAOActions
View Controller
Almir Neto - [email protected] e Otávio Calaça - [email protected] 28
Padrões de Projeto WEB e o MVC
Model
BeanEntidadeSegurançaEncapsulamentoVantagens
Almir Neto - [email protected] e Otávio Calaça - [email protected] 29
Padrões de Projeto WEB e o MVC
Model
DAO – Data Access ObjectPersistênciaPortabilidadeIndependência
Almir Neto - [email protected] e Otávio Calaça - [email protected] 30
Padrões de Projeto WEB e o MVC
Model
ActionRegras do NegócioIntegra Bean, DAO e Views
Almir Neto - [email protected] e Otávio Calaça - [email protected] 31
Padrões de Projeto WEB e o MVC
View
Ajax Templates Web - Standards
Almir Neto - [email protected] e Otávio Calaça - [email protected] 32
Padrões de Projeto WEB e o MVC
Controller
Segurança Controlar fluxo da aplicação
Inicia e finaliza o fluxo
Almir Neto - [email protected] e Otávio Calaça - [email protected] 33
Padrões de Projeto WEB e o MVC
Fluxo da aplicação MVC
Almir Neto - [email protected] e Otávio Calaça - [email protected] 34
Padrões de Projeto WEB e o MVC
Referências
Padrões GoF, POSA e J2EE.Jefferson Teixeira de Souza, Ph.D
Padrões de Design Orientados a Objetos.Jorge H. C. Fernandes
Utilizando UML e PadrõesCRAIG LARMAN
Wikipédia - www.wikipedia.org
Almir Neto - [email protected] e Otávio Calaça - [email protected] 35
Padrões de Projeto WEB e o MVC
FIM
Almir Neto – [email protected]ávio Calaça Xavier – [email protected]