padrões de projeto web e o mvc
DESCRIPTION
Slides used at 1º SGSL. The main subject is MVC and design patternsTRANSCRIPT
![Page 1: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/1.jpg)
Padrões de Projeto WEB e o MVC
Almir NetoOtávio Calaça Xavier
![Page 2: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/2.jpg)
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
![Page 3: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/3.jpg)
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)
![Page 4: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/4.jpg)
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.
![Page 5: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/5.jpg)
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
![Page 6: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/6.jpg)
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
![Page 7: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/7.jpg)
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
![Page 8: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/8.jpg)
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.
![Page 9: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/9.jpg)
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.
![Page 10: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/10.jpg)
Almir Neto - [email protected] e Otávio Calaça - [email protected] 10
Padrões de Projeto WEB e o MVC
Observer
Estrutura e Participantes
![Page 11: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/11.jpg)
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.
![Page 12: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/12.jpg)
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.
![Page 13: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/13.jpg)
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?
![Page 14: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/14.jpg)
Almir Neto - [email protected] e Otávio Calaça - [email protected] 14
Padrões de Projeto WEB e o MVC
Singleton
Estrutura e Participantes
![Page 15: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/15.jpg)
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.
![Page 16: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/16.jpg)
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
![Page 17: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/17.jpg)
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.
![Page 18: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/18.jpg)
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
![Page 19: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/19.jpg)
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
![Page 20: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/20.jpg)
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.
![Page 21: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/21.jpg)
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.
![Page 22: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/22.jpg)
Almir Neto - [email protected] e Otávio Calaça - [email protected] 22
Padrões de Projeto WEB e o MVC
Composite
Estrutura e Participantes
![Page 23: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/23.jpg)
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.
![Page 24: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/24.jpg)
Almir Neto - [email protected] e Otávio Calaça - [email protected] 24
Padrões de Projeto WEB e o MVC
Duvidas??
![Page 25: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/25.jpg)
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
![Page 26: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/26.jpg)
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
![Page 27: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/27.jpg)
Almir Neto - [email protected] e Otávio Calaça - [email protected] 27
Padrões de Projeto WEB e o MVC
Camadas
ModelBeanDAOActions
View Controller
![Page 28: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/28.jpg)
Almir Neto - [email protected] e Otávio Calaça - [email protected] 28
Padrões de Projeto WEB e o MVC
Model
BeanEntidadeSegurançaEncapsulamentoVantagens
![Page 29: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/29.jpg)
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
![Page 30: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/30.jpg)
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
![Page 31: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/31.jpg)
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
![Page 32: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/32.jpg)
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
![Page 33: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/33.jpg)
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
![Page 34: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/34.jpg)
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
![Page 35: Padrões de Projeto WEB e o MVC](https://reader033.vdocuments.site/reader033/viewer/2022051015/55694675d8b42a2c788b5013/html5/thumbnails/35.jpg)
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]