Design Patterns para
Java
Daniel Wildt (daniel.wildt@bluestar.inf.br)
JBuilder/Delphi Certified Instructor/Developer
http://www.geocities.com/dwildt2
Bluestar Technology
http://www.bluestar.inf.br
Daniel Wildt (daniel.wildt@bluestar.inf.br)
JBuilder/Delphi Certified Instructor/Developer
http://www.geocities.com/dwildt2
3
Agenda
O que são Design Patterns e suas
características
Padrões de projeto de Mercado, visão
geral
Padrões de Projeto GoF
Criação
Estruturais
Comportamento
4
O que são Design Patterns e suas
características
Na definição de Christopher
Alexander, “Cada padrão descreve um
problema que acontece diversas
vezes em nosso ambiente e descreve
uma solução base de modo que se
possa reutilizar a solução milhares de
vezes...”.
Descrição de objetos e classes que se
comunicam para resolver um
problema de design genérico em um
contexto particular.
5
O que são Design Patterns e suas
características
Cada padrão de projeto possui
características, como:
Nome: sua identificação para o
mercado, normalmente o atributo
mais complicado de se descrever.
Problema: indicar quando o uso do
padrão pode ser interessante.
6
O que são Design Patterns e suas
características
Cada padrão de projeto possui
características, como:
Solução: como aplicar o padrão de
projeto
Consequências: perdas e ganhos
ao aplicar o padrão. As vezes se
pode perder coesão ou ganhar
acoplamento no sistema ao fazer
uso de determinado padrão.
7
Agenda
O que são Design Patterns e suas
características
Padrões de projeto de Mercado, visão
geral
Padrões de Projeto GoF
Criação
Estruturais
Comportamento
8
Padrões de projeto de Mercado,
visão geral
Padrões de projeto GoF (serão
apresentados em seguida)
Padrões de projeto Sun J2EE
Data Transfer Object
Data Access Object
Front Controller
Value List Handler
Viewer Helper
http://java.sun.com/blueprints/corej2eepatterns/P
atterns/index.html
9
Padrões de projeto de Mercado,
visão geral
Coad Patterns
http://www.thecoadletter.com/coadletter/
Refactoring Patterns
http://www.refactoring.com
10
Agenda
O que são Design Patterns e suas
características
Padrões de projeto de Mercado, visão
geral
Padrões de Projeto GoF
Criação
Estruturais
Comportamento
11
Padrões de Projeto GoF
Referência:
Título: Design Patterns : Elements of Reusable
Object-Oriented Software
Autores: Eric Gamma, Richard Helm, Ralph
Johnson, John Vlissides
ISBN: 0201633612
Editora: Pearson
Publicação: 1994
12
Agenda
O que são Design Patterns e suas
características
Padrões de projeto de Mercado, visão
geral
Padrões de Projeto GoF
Criação
Estruturais
Comportamento
13
Padrões de Projeto GoF
Criação:
Abstract Factory: provê uma interface para
se criar familias de objetos relacionados ou
dependentes sem utilizar as classes
concretas.
Builder: separa o processo de construção de
um objeto complexo de sua representação.
Deste modo o mesmo processo de
construção pode retornar diferentes
representações.
14
Padrões de Projeto GoF
Criação:
Factory: define uma interface para a criação
de um objeto, mas deixa as classes
escolherem qual classe deve ser instanciada.
Prototype: estabelece padrão para permitir a
cópia de objetos (clone)
Singleton: estabelece a regra de que só pode
existir um objeto disponível na memória para
a classe que implementa este padrão.
15
Agenda
O que são Design Patterns e suas
características
Padrões de projeto de Mercado, visão
geral
Padrões de Projeto GoF
Criação
Estruturais
Comportamento
16
Padrões de Projeto GoF
Estruturais:
Adapter: permite que classes trabalhem
juntas onde em outros casos não poderiam
por possuirem interfaces diferentes
Bridge: desacopla a implementação de uma
abstração de modo que as duas possam
variar de forma independente.
Composite: capacidade de utilizar relações
de parte-todo (composição)
17
Padrões de Projeto GoF
Estruturais:
Decorator: anexa responsabilidades a um
objeto de forma dinâmica. Alternativa para
especialização de classes.
Facade: prover uma interface unificada para
um conjunto de interfaces. Interface de mais
alto nível para se trabalhar.
18
Padrões de Projeto GoF
Estruturais:
Flyweight: técnica para permitir que objetos
possam ser usados em múltiplos contextos
de forma simultânea.
Proxy: controla o acesso ao objeto original e
em alguns casos visa diminuir a
complexidade de uso de objetos.
19
Agenda
O que são Design Patterns e suas
características
Padrões de projeto de Mercado, visão
geral
Padrões de Projeto GoF
Criação
Estruturais
Comportamento
20
Padrões de Projeto GoF
Comportamento:
Chain of Responsibility: evita acoplamento
entre objetos para responder a requests. Cria
uma cadeia de processamento.
Command: encapsula a requisição feita para
um objeto.
Interpreter: padrão para suprir a
necessidade de interpretadores de
linguagens através de sua gramática.
21
Padrões de Projeto GoF
Comportamento:
Iterator: provê acesso sequêncial aos
elementos de uma agregação sem expor sua
representação.
Mediator: define objeto que encapsula o
relacionamento entre outros objetos. Agrega
a perda de acoplamento explícito entre
classes.
Memento: sem violar encapsulação, captura
e externaliza o estado interno de um objeto.
22
Padrões de Projeto GoF
Comportamento:
Observer: define uma dependência de um
para muitos onde quando um objeto muda
seu estado, todos associados são notificados.
State: permite ao objeto modificar seu
comportamento quando seu estado interno
muda.
Strategy: necessidade de diferentes variantes
de um algoritmo, conforme situação.
Interdependência.
23
Padrões de Projeto GoF
Comportamento:
Template Method: define o esqueleto de um
algoritmo e permite que subclasses redefinam
alguns passos sem modificar a estrutura do
algoritmo.
Visitor: permite definir uma nova operação
sem modificar a estrutura das outras classes
que em este opera.
24
Obrigado!
Design Patterns para Java
Daniel Wildt (daniel.wildt@bluestar.inf.br)
JBuilder/Delphi Certified Instructor/Developer
http://www.geocities.com/dwildt2

GoF Design Patterns - Borland Conference (BorCon) 2004

  • 1.
    Design Patterns para Java DanielWildt (daniel.wildt@bluestar.inf.br) JBuilder/Delphi Certified Instructor/Developer http://www.geocities.com/dwildt2
  • 2.
    Bluestar Technology http://www.bluestar.inf.br Daniel Wildt(daniel.wildt@bluestar.inf.br) JBuilder/Delphi Certified Instructor/Developer http://www.geocities.com/dwildt2
  • 3.
    3 Agenda O que sãoDesign Patterns e suas características Padrões de projeto de Mercado, visão geral Padrões de Projeto GoF Criação Estruturais Comportamento
  • 4.
    4 O que sãoDesign Patterns e suas características Na definição de Christopher Alexander, “Cada padrão descreve um problema que acontece diversas vezes em nosso ambiente e descreve uma solução base de modo que se possa reutilizar a solução milhares de vezes...”. Descrição de objetos e classes que se comunicam para resolver um problema de design genérico em um contexto particular.
  • 5.
    5 O que sãoDesign Patterns e suas características Cada padrão de projeto possui características, como: Nome: sua identificação para o mercado, normalmente o atributo mais complicado de se descrever. Problema: indicar quando o uso do padrão pode ser interessante.
  • 6.
    6 O que sãoDesign Patterns e suas características Cada padrão de projeto possui características, como: Solução: como aplicar o padrão de projeto Consequências: perdas e ganhos ao aplicar o padrão. As vezes se pode perder coesão ou ganhar acoplamento no sistema ao fazer uso de determinado padrão.
  • 7.
    7 Agenda O que sãoDesign Patterns e suas características Padrões de projeto de Mercado, visão geral Padrões de Projeto GoF Criação Estruturais Comportamento
  • 8.
    8 Padrões de projetode Mercado, visão geral Padrões de projeto GoF (serão apresentados em seguida) Padrões de projeto Sun J2EE Data Transfer Object Data Access Object Front Controller Value List Handler Viewer Helper http://java.sun.com/blueprints/corej2eepatterns/P atterns/index.html
  • 9.
    9 Padrões de projetode Mercado, visão geral Coad Patterns http://www.thecoadletter.com/coadletter/ Refactoring Patterns http://www.refactoring.com
  • 10.
    10 Agenda O que sãoDesign Patterns e suas características Padrões de projeto de Mercado, visão geral Padrões de Projeto GoF Criação Estruturais Comportamento
  • 11.
    11 Padrões de ProjetoGoF Referência: Título: Design Patterns : Elements of Reusable Object-Oriented Software Autores: Eric Gamma, Richard Helm, Ralph Johnson, John Vlissides ISBN: 0201633612 Editora: Pearson Publicação: 1994
  • 12.
    12 Agenda O que sãoDesign Patterns e suas características Padrões de projeto de Mercado, visão geral Padrões de Projeto GoF Criação Estruturais Comportamento
  • 13.
    13 Padrões de ProjetoGoF Criação: Abstract Factory: provê uma interface para se criar familias de objetos relacionados ou dependentes sem utilizar as classes concretas. Builder: separa o processo de construção de um objeto complexo de sua representação. Deste modo o mesmo processo de construção pode retornar diferentes representações.
  • 14.
    14 Padrões de ProjetoGoF Criação: Factory: define uma interface para a criação de um objeto, mas deixa as classes escolherem qual classe deve ser instanciada. Prototype: estabelece padrão para permitir a cópia de objetos (clone) Singleton: estabelece a regra de que só pode existir um objeto disponível na memória para a classe que implementa este padrão.
  • 15.
    15 Agenda O que sãoDesign Patterns e suas características Padrões de projeto de Mercado, visão geral Padrões de Projeto GoF Criação Estruturais Comportamento
  • 16.
    16 Padrões de ProjetoGoF Estruturais: Adapter: permite que classes trabalhem juntas onde em outros casos não poderiam por possuirem interfaces diferentes Bridge: desacopla a implementação de uma abstração de modo que as duas possam variar de forma independente. Composite: capacidade de utilizar relações de parte-todo (composição)
  • 17.
    17 Padrões de ProjetoGoF Estruturais: Decorator: anexa responsabilidades a um objeto de forma dinâmica. Alternativa para especialização de classes. Facade: prover uma interface unificada para um conjunto de interfaces. Interface de mais alto nível para se trabalhar.
  • 18.
    18 Padrões de ProjetoGoF Estruturais: Flyweight: técnica para permitir que objetos possam ser usados em múltiplos contextos de forma simultânea. Proxy: controla o acesso ao objeto original e em alguns casos visa diminuir a complexidade de uso de objetos.
  • 19.
    19 Agenda O que sãoDesign Patterns e suas características Padrões de projeto de Mercado, visão geral Padrões de Projeto GoF Criação Estruturais Comportamento
  • 20.
    20 Padrões de ProjetoGoF Comportamento: Chain of Responsibility: evita acoplamento entre objetos para responder a requests. Cria uma cadeia de processamento. Command: encapsula a requisição feita para um objeto. Interpreter: padrão para suprir a necessidade de interpretadores de linguagens através de sua gramática.
  • 21.
    21 Padrões de ProjetoGoF Comportamento: Iterator: provê acesso sequêncial aos elementos de uma agregação sem expor sua representação. Mediator: define objeto que encapsula o relacionamento entre outros objetos. Agrega a perda de acoplamento explícito entre classes. Memento: sem violar encapsulação, captura e externaliza o estado interno de um objeto.
  • 22.
    22 Padrões de ProjetoGoF Comportamento: Observer: define uma dependência de um para muitos onde quando um objeto muda seu estado, todos associados são notificados. State: permite ao objeto modificar seu comportamento quando seu estado interno muda. Strategy: necessidade de diferentes variantes de um algoritmo, conforme situação. Interdependência.
  • 23.
    23 Padrões de ProjetoGoF Comportamento: Template Method: define o esqueleto de um algoritmo e permite que subclasses redefinam alguns passos sem modificar a estrutura do algoritmo. Visitor: permite definir uma nova operação sem modificar a estrutura das outras classes que em este opera.
  • 24.
    24 Obrigado! Design Patterns paraJava Daniel Wildt (daniel.wildt@bluestar.inf.br) JBuilder/Delphi Certified Instructor/Developer http://www.geocities.com/dwildt2