Padrões de Projeto em Aplicações Web

Post on 19-Jun-2015

388 views 3 download

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

Padrões de Projeto em Aplicações Web

@JonataWeber

Padrões de Projeto

Design

Pattern

Contexto

Problema

Solução

– Christopher Alexander (1979)

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

Padrões de Criação

Padrões Estruturais

Padrões Comportamentais

Padrões GoF

• Padrões de Criação

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

• Padrões Estruturais

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

• Flyweight• Proxy

• Padrões Comportamentais

• Chain of Responsibility

• Command• Interpreter• Iterator• Mediator• Memento

• Observer• State• Strategy• Template

Method• Visitor

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

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

Front Controller

“Centralizar o processamento de requisições em um único ponto”

ALUR, Deepak – Core J2EE Patterns (2003)

Front Controller

Problema 1:

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

Front Controller

Problema 2:

Remover duplicação de código

Front Controller

Problema 3:

Estabelecer responsabilidades mais definidas para cada

objeto, facilitando manutenção e extensão

MVCModel-View-Controller

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

MVCModel-View-Controller

– Wikipédia, 2013

Reusabilidade de CódigoSeparação de Conceitos{