padrões de projeto web e o mvc

35
Padrões de Projeto WEB e o MVC Almir Neto Otávio Calaça Xavier

Upload: almir-neto

Post on 30-May-2015

9.777 views

Category:

Technology


2 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Padrões de Projeto WEB e o MVC

Padrões de Projeto WEB e o MVC

Almir NetoOtávio Calaça Xavier

Page 2: Padrões de Projeto WEB e o MVC

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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]