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.
2. 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
3. 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)
4. 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 e
Solução.
5. 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
Classes
Objetos
Propósito
Criação
Estrutural
Comportamental
6. Almir Neto e Otávio Calaça 6
Padrões de Projeto WEB e o MVC
Organização dos Padrões
GoF
7. Almir Neto e Otávio Calaça 7
Padrões de Projeto WEB e o MVC
Interação entre Padrões
8. 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.
9. Almir Neto e Otávio Calaça 9
Padrões de Projeto WEB e o MVC
Observer
Problema
Como garantir a atualização de objetos que
dependem de outro objeto sem que este saiba
quais objetos dependem dele?
Observando-o.
10. Almir Neto e Otávio Calaça 10
Padrões de Projeto WEB e o MVC
Observer
Estrutura e Participantes
11. Almir Neto e Otávio Calaça 11
Padrões de Projeto WEB e o MVC
Observer
Aplicabilidade
Quando 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.
12. 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.
13. 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?
14. Almir Neto e Otávio Calaça 14
Padrões de Projeto WEB e o MVC
Singleton
Estrutura e Participantes
15. Almir Neto e Otávio Calaça 15
Padrões de Projeto WEB e o MVC
Singleton
Aplicabilidade
Quando 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.
16. 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
17. Almir Neto e Otávio Calaça 17
Padrões de Projeto WEB e o MVC
Factory Method
Problema
Como 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.
18. Almir Neto e Otávio Calaça 18
Padrões de Projeto WEB e o MVC
Factory Method
Estrutura e Participantes
19. Almir Neto e Otávio Calaça 19
Padrões de Projeto WEB e o MVC
Factory Method
Aplicabilidade
Considere 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
20. 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.
21. Almir Neto e Otávio Calaça 21
Padrões de Projeto WEB e o MVC
Composite
Problema
Como 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.
22. Almir Neto e Otávio Calaça 22
Padrões de Projeto WEB e o MVC
Composite
Estrutura e Participantes
23. Almir Neto e Otávio Calaça 23
Padrões de Projeto WEB e o MVC
Composite
Aplicabilidade
Aplicaçõ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.
24. Almir Neto e Otávio Calaça 24
Padrões de Projeto WEB e o MVC
Duvidas??
25. 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
26. 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
27. Almir Neto e Otávio Calaça 27
Padrões de Projeto WEB e o MVC
Camadas
Model
Bean
DAO
Actions
View
Controller
28. Almir Neto e Otávio Calaça 28
Padrões de Projeto WEB e o MVC
Model
Bean
Entidade
Segurança
Encapsulamento
Vantagens
29. Almir Neto e Otávio Calaça 29
Padrões de Projeto WEB e o MVC
Model
DAO – Data Access Object
Persistência
Portabilidade
Independência
30. Almir Neto e Otávio Calaça 30
Padrões de Projeto WEB e o MVC
Model
Action
Regras do Negócio
Integra Bean, DAO e Views
31. Almir Neto e Otávio Calaça 31
Padrões de Projeto WEB e o MVC
View
Ajax
Templates
Web - Standards
32. 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
33. Almir Neto e Otávio Calaça 33
Padrões de Projeto WEB e o MVC
Fluxo da aplicação MVC
34. 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ões
CRAIG LARMAN
Wikipédia - www.wikipedia.org
35. Almir Neto e Otávio Calaça 35
Padrões de Projeto WEB e o MVC
FIM
Almir Neto – almirneto@gmail.com
Otávio Calaça Xavier – otaviocx@gmail.com