SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
Padrões de Projeto
WEB e o MVC
Almir Neto
Otávio Calaça Xavier
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
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)
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.
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
Almir Neto e Otávio Calaça 6
Padrões de Projeto WEB e o MVC
Organização dos Padrões
GoF
Almir Neto e Otávio Calaça 7
Padrões de Projeto WEB e o MVC
Interação entre Padrões
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.
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.
Almir Neto e Otávio Calaça 10
Padrões de Projeto WEB e o MVC
Observer
 Estrutura e Participantes
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.
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.
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?
Almir Neto e Otávio Calaça 14
Padrões de Projeto WEB e o MVC
Singleton
 Estrutura e Participantes
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.
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
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.
Almir Neto e Otávio Calaça 18
Padrões de Projeto WEB e o MVC
Factory Method
 Estrutura e Participantes
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
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.
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.
Almir Neto e Otávio Calaça 22
Padrões de Projeto WEB e o MVC
Composite
 Estrutura e Participantes
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.
Almir Neto e Otávio Calaça 24
Padrões de Projeto WEB e o MVC
Duvidas??
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
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
Almir Neto e Otávio Calaça 27
Padrões de Projeto WEB e o MVC
Camadas
 Model
 Bean
 DAO
 Actions
 View
 Controller
Almir Neto e Otávio Calaça 28
Padrões de Projeto WEB e o MVC
Model
 Bean
Entidade
Segurança
Encapsulamento
Vantagens
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
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
Almir Neto e Otávio Calaça 31
Padrões de Projeto WEB e o MVC
View
 Ajax
 Templates
 Web - Standards
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
Almir Neto e Otávio Calaça 33
Padrões de Projeto WEB e o MVC
Fluxo da aplicação MVC
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
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

Mais conteúdo relacionado

Mais procurados

ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)Giovanni Bassi
 
ASP .NET MVC na Prática - C. Augusto Proiete
ASP .NET MVC na Prática - C. Augusto ProieteASP .NET MVC na Prática - C. Augusto Proiete
ASP .NET MVC na Prática - C. Augusto ProieteComunidade NetPonto
 
TDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSTDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSLeonardo Zanivan
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsCloves Moreira Junior
 
jQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmicajQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmicaVictor Cavalcante
 
Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...
Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...
Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...Esdras Da Silva
 
genesis - Acelerando o desenvolvimento de aplicações desktop
genesis - Acelerando o desenvolvimento de aplicações desktopgenesis - Acelerando o desenvolvimento de aplicações desktop
genesis - Acelerando o desenvolvimento de aplicações desktopMichel Graciano
 
ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010Giovanni Bassi
 
Comtec2010 asp.net mvc
Comtec2010 asp.net mvcComtec2010 asp.net mvc
Comtec2010 asp.net mvcTadeu Matos
 
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Glauco Vinicius Argentino de Oliveira
 
A nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvemA nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvemCloves Moreira Junior
 
Arquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOArquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOLeonardo Sousa
 

Mais procurados (17)

Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
 
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
 
ASP .NET MVC na Prática - C. Augusto Proiete
ASP .NET MVC na Prática - C. Augusto ProieteASP .NET MVC na Prática - C. Augusto Proiete
ASP .NET MVC na Prática - C. Augusto Proiete
 
TDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSTDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJS
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
 
jQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmicajQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmica
 
Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...
Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...
Resenha Crítica Comparativa - Inovando o Desenvolvimento Web com JSF e Design...
 
Apresentação angular js
Apresentação angular jsApresentação angular js
Apresentação angular js
 
genesis - Acelerando o desenvolvimento de aplicações desktop
genesis - Acelerando o desenvolvimento de aplicações desktopgenesis - Acelerando o desenvolvimento de aplicações desktop
genesis - Acelerando o desenvolvimento de aplicações desktop
 
Estudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e SilverlightEstudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e Silverlight
 
ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010ASP.Net MVC no VS 2010
ASP.Net MVC no VS 2010
 
Conceitos de Java Web
Conceitos de Java WebConceitos de Java Web
Conceitos de Java Web
 
Comtec2010 asp.net mvc
Comtec2010 asp.net mvcComtec2010 asp.net mvc
Comtec2010 asp.net mvc
 
Angular js
Angular jsAngular js
Angular js
 
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
 
A nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvemA nova geração da arquitetura web para a era da nuvem
A nova geração da arquitetura web para a era da nuvem
 
Arquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAOArquitetura MVC, JavaBeans e DAO
Arquitetura MVC, JavaBeans e DAO
 

Destaque

Apresentação do Artigo As We May Think - Vannevar Bush
Apresentação do Artigo As We May Think - Vannevar BushApresentação do Artigo As We May Think - Vannevar Bush
Apresentação do Artigo As We May Think - Vannevar BushDalton Martins
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaOtávio Calaça Xavier
 
Fuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionFuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionOtávio Calaça Xavier
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesOtávio Calaça Xavier
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebOtávio Calaça Xavier
 
Deep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeDeep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeOtávio Calaça Xavier
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebOtávio Calaça Xavier
 
Integrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPIntegrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPOtávio Calaça Xavier
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaOtávio Calaça Xavier
 
Introdução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxIntrodução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxOtávio Calaça Xavier
 
Internet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsInternet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsOtávio Calaça Xavier
 
Web Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLWeb Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLOtávio Calaça Xavier
 
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXOtávio Calaça Xavier
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at FlickrJohn Allspaw
 

Destaque (18)

As we may think
As we may thinkAs we may think
As we may think
 
Apresentação do Artigo As We May Think - Vannevar Bush
Apresentação do Artigo As We May Think - Vannevar BushApresentação do Artigo As We May Think - Vannevar Bush
Apresentação do Artigo As We May Think - Vannevar Bush
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega Continua
 
Fuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionFuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and Induction
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simples
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da Web
 
Deep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeDeep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizade
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da Web
 
Integrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPIntegrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHP
 
Redes Neurais com PHP
Redes Neurais com PHPRedes Neurais com PHP
Redes Neurais com PHP
 
Introdução ao Framework CakePHP
Introdução ao Framework CakePHPIntrodução ao Framework CakePHP
Introdução ao Framework CakePHP
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega Contínua
 
Introdução à Google Maps API
Introdução à Google Maps APIIntrodução à Google Maps API
Introdução à Google Maps API
 
Introdução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxIntrodução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com Ajax
 
Internet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsInternet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.js
 
Web Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLWeb Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQL
 
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
 

Semelhante a Padrões WEB e MVC

ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...anybalrocha
 
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)Giovanni Bassi
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Portal GSTI
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvcleopp
 
Asp.net mvc 3 - eco 2010
Asp.net mvc 3 - eco 2010Asp.net mvc 3 - eco 2010
Asp.net mvc 3 - eco 2010joselinoneto
 
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)Rafael Oliveira
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifaguestea329c
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasVagner Santana
 
Usando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoUsando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoAlexandre Andrade
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Rodrigo Kono
 
5507 os principais design patterns
5507   os principais design patterns5507   os principais design patterns
5507 os principais design patternsAndre Baltieri
 

Semelhante a Padrões WEB e MVC (20)

Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
 
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
 
Palestra ASP.NET MVC
Palestra ASP.NET MVCPalestra ASP.NET MVC
Palestra ASP.NET MVC
 
Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvc
 
Asp.net mvc 3 - eco 2010
Asp.net mvc 3 - eco 2010Asp.net mvc 3 - eco 2010
Asp.net mvc 3 - eco 2010
 
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
 
Aula1
Aula1Aula1
Aula1
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifa
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de Sistemas
 
Usando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoUsando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimento
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
 
5507 os principais design patterns
5507   os principais design patterns5507   os principais design patterns
5507 os principais design patterns
 

Mais de Otávio Calaça Xavier

Implementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social NetworksImplementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social NetworksOtávio Calaça Xavier
 
Lógica Fuzzy aplicada à Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à  Sistemas de Apoio a DecisãoLógica Fuzzy aplicada à  Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à Sistemas de Apoio a DecisãoOtávio Calaça Xavier
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineOtávio Calaça Xavier
 
Introdução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPIntrodução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPOtávio Calaça Xavier
 
Classe V: Educação à distância com Videoconferência no Moodle
Classe V: Educação à distância com Videoconferência no MoodleClasse V: Educação à distância com Videoconferência no Moodle
Classe V: Educação à distância com Videoconferência no MoodleOtávio Calaça Xavier
 

Mais de Otávio Calaça Xavier (6)

Implementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social NetworksImplementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social Networks
 
Lógica Fuzzy aplicada à Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à  Sistemas de Apoio a DecisãoLógica Fuzzy aplicada à  Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à Sistemas de Apoio a Decisão
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP Doctrine
 
PHP: Atualidade e Tendências
PHP: Atualidade e TendênciasPHP: Atualidade e Tendências
PHP: Atualidade e Tendências
 
Introdução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPIntrodução às Redes Neurais com PHP
Introdução às Redes Neurais com PHP
 
Classe V: Educação à distância com Videoconferência no Moodle
Classe V: Educação à distância com Videoconferência no MoodleClasse V: Educação à distância com Videoconferência no Moodle
Classe V: Educação à distância com Videoconferência no Moodle
 

Padrões WEB e MVC

  • 1. Padrões de Projeto WEB e o MVC Almir Neto Otávio Calaça Xavier
  • 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