Padrões de Projeto em Aplicações Web

18
Padrões de Projeto em Aplicações Web @JonataWeber

Transcript of Padrões de Projeto em Aplicações Web

Page 1: Padrões de Projeto em Aplicações Web

Padrões de Projeto em Aplicações Web

@JonataWeber

Page 2: Padrões de Projeto em Aplicações Web

Padrões de Projeto

Design

Pattern

Contexto

Problema

Solução

– Christopher Alexander (1979)

Page 3: Padrões de Projeto em Aplicações Web

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

Padrões de Criação

Padrões Estruturais

Padrões Comportamentais

Padrões GoF

Page 5: Padrões de Projeto em Aplicações Web

• Padrões de Criação

• Abstract Factory• Builder• Factory Method• Prototype• Singleton

Page 6: Padrões de Projeto em Aplicações Web

• Padrões Estruturais

• Adapter• Bridge• Composite• Decorator• Façade

• Flyweight• Proxy

Page 7: Padrões de Projeto em Aplicações Web

• 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

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

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

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

Front Controller

Problema 1:

Controlar a navegação entre os objetos de visão

Page 12: Padrões de Projeto em Aplicações Web

Front Controller

Problema 2:

Remover duplicação de código

Page 13: Padrões de Projeto em Aplicações Web

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

MVCModel-View-Controller

Page 15: Padrões de Projeto em Aplicações Web

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
Page 17: Padrões de Projeto em Aplicações Web

MVCModel-View-Controller

– Wikipédia, 2013

Reusabilidade de CódigoSeparação de Conceitos{