Padrões de Projeto WEB e o MVC

11,365 views

Published on

Slides used at 1º SGSL. The main subject is MVC and design patterns

Published in: Technology, Design
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
11,365
On SlideShare
0
From Embeds
0
Number of Embeds
56
Actions
Shares
0
Downloads
485
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Padrões de Projeto WEB e o MVC

  1. 1. Padrões de Projeto WEB e o MVC Almir Neto Otávio Calaça Xavier
  2. 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 2 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  3. 3. Padrões de Projeto WEB e o MVC O que são padrões? quot;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 repetidaquot; Christopher Alexander (Arquiteto e Urbanista) 3 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  4. 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. 4 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  5. 5. Padrões de Projeto WEB e o MVC Padrões GoF Gang-of-Four (Gangue-dos-Quatro)   ErichGamma,  Richard Helm,  Ralph Johnson e  John Vlissides Organização dos Padrões  Escopo Propósito    Classes  Criação  Objetos  Estrutural  Comportamental 5 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  6. 6. Padrões de Projeto WEB e o MVC Organização dos Padrões GoF 6 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  7. 7. Padrões de Projeto WEB e o MVC Interação entre Padrões 7 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  8. 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. 8 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  9. 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. 9 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  10. 10. Padrões de Projeto WEB e o MVC Observer Estrutura e Participantes  10 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  11. 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. 11 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  12. 12. Padrões de Projeto WEB e o MVC Singleton Criação de Objeto   Objetivo  Garantirque uma classe tenha uma única instância, e prover um ponto de acesso global a esta instância. 12 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  13. 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? 13 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  14. 14. Padrões de Projeto WEB e o MVC Singleton Estrutura e Participantes  14 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  15. 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. 15 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  16. 16. Padrões de Projeto WEB e o MVC Factory Method Criação de Classe   Objetivo  Definiruma 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 16 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  17. 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. 17 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  18. 18. Padrões de Projeto WEB e o MVC Factory Method Estrutura e Participantes  18 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  19. 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 19 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  20. 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. 20 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  21. 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. 21 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  22. 22. Padrões de Projeto WEB e o MVC Composite Estrutura e Participantes  22 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  23. 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. 23 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  24. 24. Padrões de Projeto WEB e o MVC Duvidas?? 24 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  25. 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 25 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  26. 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 26 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  27. 27. Padrões de Projeto WEB e o MVC Camadas Model   Bean  DAO  Actions View   Controller 27 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  28. 28. Padrões de Projeto WEB e o MVC Model Bean   Entidade  Segurança  Encapsulamento  Vantagens 28 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  29. 29. Padrões de Projeto WEB e o MVC Model DAO – Data Access Object   Persistência  Portabilidade  Independência 29 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  30. 30. Padrões de Projeto WEB e o MVC Model Action   Regras do Negócio  Integra Bean, DAO e Views 30 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  31. 31. Padrões de Projeto WEB e o MVC View Ajax   Templates  Web - Standards 31 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  32. 32. Padrões de Projeto WEB e o MVC Controller Segurança   Controlar fluxo da aplicação  Inicia e finaliza o fluxo 32 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  33. 33. Padrões de Projeto WEB e o MVC Fluxo da aplicação MVC 33 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  34. 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  34 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com
  35. 35. Padrões de Projeto WEB e o MVC FIM Almir Neto – almirneto@gmail.com Otávio Calaça Xavier – otaviocx@gmail.com 35 Almir Neto - almirneto@gmail.com e Otávio Calaça - otaviocx@gmail.com

×