Design Patterns - Aula 1

Post on 20-Aug-2015

446 views 2 download

Transcript of Design Patterns - Aula 1

Prof.ª Esp. Talita Pagani talita.cpb@gmail.com | @talitapagani

Especialização em Engenharia de Software

21/02/2014 Design Patterns | Aula 1 | Prof.ª Esp. Talita Pagani 1

1. Definição de Design Patterns;

2. Design Patterns para softwares orientados a objetos: a. Padrões de criação;

b. Padrões estruturais;

c. Padrões comportamentais;

3. Estudo de caso de Design Patterns;

4. Modelagem de software com auxílio de Design Patterns;

5. Design Patterns para interfaces gráficas;

6. Design Patterns para mobile.

21/02/2014 Design Patterns | Aula 1 | Prof.ª Esp. Talita Pagani 2

Informações gerais

• Conhecimento sobre orientação a objetos;

• Conhecimento sobre projeto de software

orientado a objetos.

• Escopo destas aulas:

– Tópicos avançados em DP;

– Aplicação prática de DP.

21/02/2014 Design Patterns | Aula 1 | Prof.ª Esp. Talita Pagani 3

Informações gerais

• Surgiu na arquitetura:

padrões de Alexander (1977)

21/02/2014 Design Patterns | Aula 1 | Prof.ª Esp. Talita Pagani 4

Definição de Design Patterns

Padrão de projeto é uma

solução de sucesso - testada e

verificada - para um problema

recorrente em um determinado

contexto.

21/02/2014 Design Patterns | Aula 1 | Prof.ª Esp. Talita Pagani 5

Definição de Design Patterns

• Padrões para software:

–Soluções simples para problemas de OO;

–Registro de experiência acumulada;

–Padronização e reuso;

–Eficácia;

– Flexibilidade.

21/02/2014 Design Patterns | Aula 1 | Prof.ª Esp. Talita Pagani 6

Definição de Design Patterns

• Padrões para software:

– "descrições de objetos e classes

comunicantes que precisam ser

personalizadas para resolver um problema

geral num contexto particular" (GAMMA,

et al. 2007)

21/02/2014 Design Patterns | Aula 1 | Prof.ª Esp. Talita Pagani 7

Definição de Design Patterns

• Surgiu em 1995

– Erich Gamma, Richar Helm, Ralph Johnson e

John Vlissides (Gang of Four)

• Catálogo de 23 padrões

21/02/2014 Design Patterns | Aula 1 | Prof.ª Esp. Talita Pagani 8

Design Patterns para Software Orientado a Objetos

• Finalidade

– Padrões de criação (ou criacionais)

– Padrões estruturais

– Padrões comportamentais

• Escopo

– Classe

– Objetos

21/02/2014 Design Patterns | Aula 1 | Prof.ª Esp. Talita Pagani 9

Design Patterns para Software Orientado a Objetos

21/02/2014 Design Patterns | Aula 1 | Prof.ª Esp. Talita Pagani 10

Design Patterns para Software Orientado a Objetos

Tabela 1 - O espaço dos padrões de projeto

Propósito

De criação Estrutural Comportamental

Escopo Classe Factory Method Adapter (classe) Interpreter

Template Method

Objeto Abstract Factory

Builder

Prototype

Singleton

Adapter (objeto)

Bridge

Composite

Decorator

Façade

Flyweight

Proxy

Chain of Responsability

Command

Iterator

Mediator

Memento

Observer

State

Strategy

Visitor

Fonte: GAMMA, et al., 2007.

21/02/2014 Design Patterns | Aula 1 | Prof.ª Esp. Talita Pagani 11

Design Patterns para Software Orientado a Objetos

Fonte: http://www.vincehuston.org/dp/

• Nome do padrão

• Intenção e objetivo

• Também conhecido como

• Motivação

• Aplicabilidade

• Estrutura

• Participantes

21/02/2014 Design Patterns | Aula 1 | Prof.ª Esp. Talita Pagani 12

Design Patterns para Software Orientado a Objetos

• Colaboração

• Consequências

• Implementação

• Exemplos de código

• Usos conhecidos

• Padrões relacionados

21/02/2014 Design Patterns | Aula 1 | Prof.ª Esp. Talita Pagani 13

Design Patterns para Software Orientado a Objetos

• Projeto de software para ser:

21/02/2014 Design Patterns | Aula 1 | Prof.ª Esp. Talita Pagani 14

Modelagem de software com auxílio de Design Patterns

Robusto

F lex íve l

Esca láve l

In te l ig íve l

R e u t i l i z á v e l

Manuten i -

b i l i dade

• ALEXANDER, C., et al. A Pattern Language. Oxford University Press, 1977.

• AMMAR, H. H. 2008. Case Studies on Design Patterns. Disponível em: http://www.csee.wvu.edu/~ammar/rts/adv rts/design patterns case studies/before and after CaseStudies.ppt

• GAMMA, E., et al. Padrões de projeto: soluções reutilizáveis de software orientado a objetos; tradução de Luiz A. Meirelles Salgado. Porto Alegre: Bookman, 2007.

• HEGODA, D. 2013. Why? When to? Software Design Patterns. Disponível em: http://dasunhegoda.com/software-design-patterns/158/

• JAVACAMP. 2012. Java Design Patterns At a Glance. Disponível em: http://www.javacamp.org/designPattern/

• LEACOCK, M.; MALONE, E.; WHEELER, C. Implementing a Pattern Library in the Real World: A Yahoo! Case Study. In: Sixth Annual ASIS&T Information Architecture Summit. Montréal, Quebec, Canada, mar. 2005. Disponível em: http://leacock.com/patterns/

• MCDONALD, J. 2007. Design Patterns Quick Reference. Disponível em: http://www.mcdonaldland.info/2007/11/28/40/

• MEMÓRIA, F. Design para a internet: Projetando a experiência perfeita. Rio de Janeiro: Elsevier, 2005.

• WELIE, M. V. 2008. Patterns in Interaction Design. Disponível em: http://www.welie.com/patterns/

21/02/2014 Design Patterns | Aula 1 | Prof.ª Esp. Talita Pagani 15