Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Padrões de Projeto Web e o MVC

1,828 views

Published on

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.

Published in: Technology
  • Be the first to comment

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. 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. 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. 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. 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. 6. Almir Neto e Otávio Calaça 6 Padrões de Projeto WEB e o MVC Organização dos Padrões GoF
  7. 7. Almir Neto e Otávio Calaça 7 Padrões de Projeto WEB e o MVC Interação entre Padrões
  8. 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. 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. 10. Almir Neto e Otávio Calaça 10 Padrões de Projeto WEB e o MVC Observer  Estrutura e Participantes
  11. 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. 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. 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. 14. Almir Neto e Otávio Calaça 14 Padrões de Projeto WEB e o MVC Singleton  Estrutura e Participantes
  15. 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. 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. 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. 18. Almir Neto e Otávio Calaça 18 Padrões de Projeto WEB e o MVC Factory Method  Estrutura e Participantes
  19. 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. 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. 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. 22. Almir Neto e Otávio Calaça 22 Padrões de Projeto WEB e o MVC Composite  Estrutura e Participantes
  23. 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. 24. Almir Neto e Otávio Calaça 24 Padrões de Projeto WEB e o MVC Duvidas??
  25. 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. 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. 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. 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. 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. 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. 31. Almir Neto e Otávio Calaça 31 Padrões de Projeto WEB e o MVC View  Ajax  Templates  Web - Standards
  32. 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. 33. Almir Neto e Otávio Calaça 33 Padrões de Projeto WEB e o MVC Fluxo da aplicação MVC
  34. 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. 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

×