Download - Padrões de Projeto em Aplicações Web
![Page 1: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/1.jpg)
Padrões de Projeto em Aplicações Web
@JonataWeber
![Page 2: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/2.jpg)
Padrões de Projeto
Design
Pattern
Contexto
Problema
Solução
– Christopher Alexander (1979)
![Page 3: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/3.jpg)
PadrõesDesenvolvimento de Software
Gang of Four (ou GoF)“Design Patterns: Elements of Reusable Object-Oriented Software” (1995)Por Erich Gamma (Helm, Johnson e Vlissides)
23 Padrões para Projeto Orientado a Objetos
![Page 4: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/4.jpg)
Padrões de Criação
Padrões Estruturais
Padrões Comportamentais
Padrões GoF
![Page 5: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/5.jpg)
• Padrões de Criação
• Abstract Factory• Builder• Factory Method• Prototype• Singleton
![Page 6: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/6.jpg)
• Padrões Estruturais
• Adapter• Bridge• Composite• Decorator• Façade
• Flyweight• Proxy
![Page 7: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/7.jpg)
• Padrões Comportamentais
• Chain of Responsibility
• Command• Interpreter• Iterator• Mediator• Memento
• Observer• State• Strategy• Template
Method• Visitor
![Page 8: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/8.jpg)
Padrões GRASP
“General Responsibility Assignment Software Patterns”• Controlador• Criador• Indireção• Especialista na Informação• Alta Coesão• Baixo Acoplamento• Polimorfismo• Variações Protegidas• Invensão Pura
“Utilizando UML e Padrões” – Craig Larman
![Page 9: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/9.jpg)
Padrões em Aplicações Web
• Voltados para o design de interface ou visual
• Voltados para interação e navegação
• Voltados para a arquitetura de construção
![Page 10: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/10.jpg)
Front Controller
“Centralizar o processamento de requisições em um único ponto”
ALUR, Deepak – Core J2EE Patterns (2003)
![Page 11: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/11.jpg)
Front Controller
Problema 1:
Controlar a navegação entre os objetos de visão
![Page 12: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/12.jpg)
Front Controller
Problema 2:
Remover duplicação de código
![Page 13: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/13.jpg)
Front Controller
Problema 3:
Estabelecer responsabilidades mais definidas para cada
objeto, facilitando manutenção e extensão
![Page 14: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/14.jpg)
MVCModel-View-Controller
![Page 15: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/15.jpg)
MVCModel-View-Controller• Model (modelo)Consiste nos dados da aplicação, regras de negócio, lógica e funções
• View (visão)Pode ser qualquer saída de representação dos dados, como uma tabela ou um diagrama
• Controller (controlador)Faz a mediação da entrada, convertendo-a em comandos para o modelo ou visão
– Wikipédia, 2013
![Page 16: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/16.jpg)
![Page 17: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/17.jpg)
MVCModel-View-Controller
– Wikipédia, 2013
Reusabilidade de CódigoSeparação de Conceitos{
![Page 18: Padrões de Projeto em Aplicações Web](https://reader036.vdocuments.com.br/reader036/viewer/2022083001/55834bcbd8b42a201e8b531c/html5/thumbnails/18.jpg)
Referências
http://pt.wikipedia.org/wiki/MVC
http://pt.wikipedia.org/wiki/Padr%C3%A3o_de_projeto_de_software
http://www.slideshare.net/ClaudioMartins4/padres-de-projeto-em-aplicaes-web-artigo-da-java-magazine-ed-107-2012