Upload
otavio-calaca-xavier
View
1.499
Download
0
Embed Size (px)
DESCRIPTION
Palestra ministrada no V FGSL/I SGSL em maio de 2008 sobre os principais padrões de desenvolvimento utilizados para web e seus usos no padrão de arquitetura MVC.
Citation preview
Padrões de Projeto WEB e o MVC
Almir NetoOtávio Calaça Xavier
Almir Neto e Otávio Calaça 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 e Otávio Calaça 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 e Otávio Calaça 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 e Otávio Calaça 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
ClassesObjetos
PropósitoCriaçãoEstruturalComportamental
Almir Neto e Otávio Calaça 6
Padrões de Projeto WEB e o MVC
Organização dos PadrõesGoF
Almir Neto e Otávio Calaça 7
Padrões de Projeto WEB e o MVC
Interação entre Padrões
Almir Neto e Otávio Calaça 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 e Otávio Calaça 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 e Otávio Calaça 10
Padrões de Projeto WEB e o MVC
Observer
Estrutura e Participantes
Almir Neto e Otávio Calaça 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 e Otávio Calaça 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 e Otávio Calaça 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 e Otávio Calaça 14
Padrões de Projeto WEB e o MVC
Singleton
Estrutura e Participantes
Almir Neto e Otávio Calaça 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 e Otávio Calaça 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 e Otávio Calaça 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 e Otávio Calaça 18
Padrões de Projeto WEB e o MVC
Factory Method
Estrutura e Participantes
Almir Neto e Otávio Calaça 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 e Otávio Calaça 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 e Otávio Calaça 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 e Otávio Calaça 22
Padrões de Projeto WEB e o MVC
Composite
Estrutura e Participantes
Almir Neto e Otávio Calaça 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 e Otávio Calaça 24
Padrões de Projeto WEB e o MVC
Duvidas??
Almir Neto e Otávio Calaça 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 e Otávio Calaça 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 e Otávio Calaça 27
Padrões de Projeto WEB e o MVC
Camadas
ModelBeanDAOActions
View Controller
Almir Neto e Otávio Calaça 28
Padrões de Projeto WEB e o MVC
Model
BeanEntidadeSegurançaEncapsulamentoVantagens
Almir Neto e Otávio Calaça 29
Padrões de Projeto WEB e o MVC
Model
DAO – Data Access ObjectPersistênciaPortabilidadeIndependência
Almir Neto e Otávio Calaça 30
Padrões de Projeto WEB e o MVC
Model
ActionRegras do NegócioIntegra Bean, DAO e Views
Almir Neto e Otávio Calaça 31
Padrões de Projeto WEB e o MVC
View
Ajax Templates Web - Standards
Almir Neto e Otávio Calaça 32
Padrões de Projeto WEB e o MVC
Controller
Segurança Controlar fluxo da aplicação
Inicia e finaliza o fluxo
Almir Neto e Otávio Calaça 33
Padrões de Projeto WEB e o MVC
Fluxo da aplicação MVC
Almir Neto e Otávio Calaça 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 e Otávio Calaça 35
Padrões de Projeto WEB e o MVC
FIM
Almir Neto – [email protected]ávio Calaça Xavier – [email protected]