SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

PDF
Design patterns de uma vez por todas
PDF
Padrões-12 - Padrões Estruturais - Facade
PDF
Padrões-07 - Padrões Criacionais
PDF
Padrões-10 - Padrões Criacionais - Singleton
PDF
Padroes De Projeto
PPT
Gof design patterns
PDF
Padrões-13 - Padrões Estruturais - Proxy
PPTX
BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizado...
Design patterns de uma vez por todas
Padrões-12 - Padrões Estruturais - Facade
Padrões-07 - Padrões Criacionais
Padrões-10 - Padrões Criacionais - Singleton
Padroes De Projeto
Gof design patterns
Padrões-13 - Padrões Estruturais - Proxy
BDD on Mobile: Utilizando Cucumber e Appium para executar testes automatizado...

Mais procurados (6)

PDF
Patterns: Factory Method
PDF
BDD com Cucumber
PDF
Padrões-08 - Padrões Criacionais - Abstract Factory
PDF
Curso Básico Android - Aula 01
PPT
BDD: Cucumber + Selenium + Java
PPTX
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Patterns: Factory Method
BDD com Cucumber
Padrões-08 - Padrões Criacionais - Abstract Factory
Curso Básico Android - Aula 01
BDD: Cucumber + Selenium + Java
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Anúncio

Semelhante a GoF Design Patterns - Borland Conference (BorCon) 2004 (20)

PPT
Apresentação Introdução Design Patterns
PPT
Padroes de projetos gof
PDF
Design Patterns - Introdução e Práticas
ODP
Design Patterns
PDF
Padrões de Projeto (GoF)
PDF
Design Patterns
PDF
BlingTech - Padrões de Projeto
PPT
Padrões de design orientado a objetos
PPTX
5507 os principais design patterns
PDF
Design Patterns - Aula 2
PPT
design patterns - introdução
PPT
Patterns
PPT
Design Patterns
PPTX
Design Patterns - Com Java
PPT
PPT
Padrões de Projeto de Software Orientado a Objetos
PPTX
Dessign patterns: Resoluções comuns para problemas comuns de POO
PDF
Design Patterns - Aula 1
PPTX
Padrões de Projeto em Aplicações Web
ODP
Padrões de Projeto para Jogos
Apresentação Introdução Design Patterns
Padroes de projetos gof
Design Patterns - Introdução e Práticas
Design Patterns
Padrões de Projeto (GoF)
Design Patterns
BlingTech - Padrões de Projeto
Padrões de design orientado a objetos
5507 os principais design patterns
Design Patterns - Aula 2
design patterns - introdução
Patterns
Design Patterns
Design Patterns - Com Java
Padrões de Projeto de Software Orientado a Objetos
Dessign patterns: Resoluções comuns para problemas comuns de POO
Design Patterns - Aula 1
Padrões de Projeto em Aplicações Web
Padrões de Projeto para Jogos
Anúncio

Mais de Daniel Wildt (20)

PDF
Não Espere!
PDF
Pré-Jogo / Inception - Descobrindo Produtos Viáveis
PDF
O que é inovação?
PDF
O potencial Mobile [GUDAY 2016]
PDF
Lean Canvas
PDF
O que aprendemos com o eXtreme Programming e com o mundo Ágil | #XPConfBR 2014
PDF
Aula: Agile Kickstart - Como criar equipes de alto desempenho?
PDF
Causas - Qual é a sua?
PDF
[RS on Rails 2013] Construa um produto. Quando? Neste final de semana.
PDF
Tarefas! O Que fazer?
PDF
#StartupDojo Porto Alegre - Julho/2013 (Nós Coworking)
PDF
Mantra das Possibilidades - AgileBrazil 2013
PDF
JustJava 2013 - Indo para as nuvens?
PDF
Agile KickStart 2 - Escrevendo User Stories
PDF
Agile KickStart 3 - Planejamento e Dia a Dia de Projeto
PDF
Agile KickStart 4 - Melhoria Contínua
PDF
Agile Kickstart 1 - Cultura Ágil
PDF
Quem é você?
PDF
Agile Transition. PMBOK knowledge areas and how values, principles and agile ...
PDF
Startup Dojo!
Não Espere!
Pré-Jogo / Inception - Descobrindo Produtos Viáveis
O que é inovação?
O potencial Mobile [GUDAY 2016]
Lean Canvas
O que aprendemos com o eXtreme Programming e com o mundo Ágil | #XPConfBR 2014
Aula: Agile Kickstart - Como criar equipes de alto desempenho?
Causas - Qual é a sua?
[RS on Rails 2013] Construa um produto. Quando? Neste final de semana.
Tarefas! O Que fazer?
#StartupDojo Porto Alegre - Julho/2013 (Nós Coworking)
Mantra das Possibilidades - AgileBrazil 2013
JustJava 2013 - Indo para as nuvens?
Agile KickStart 2 - Escrevendo User Stories
Agile KickStart 3 - Planejamento e Dia a Dia de Projeto
Agile KickStart 4 - Melhoria Contínua
Agile Kickstart 1 - Cultura Ágil
Quem é você?
Agile Transition. PMBOK knowledge areas and how values, principles and agile ...
Startup Dojo!

Último (11)

PPTX
Utilizando code blockes por andre backes
PPTX
Eng. Software - pontos essenciais para o início
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Mecânico de Manutenção de Equipamentos.pptx
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
Utilizando code blockes por andre backes
Eng. Software - pontos essenciais para o início
Manejo integrado de pragas na cultura do algodão
Arquitetura de computadores - Memórias Secundárias
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Mecânico de Manutenção de Equipamentos.pptx
Viasol Energia Solar -Soluções para geração e economia de energia

GoF Design Patterns - Borland Conference (BorCon) 2004

  • 1. Design Patterns para Java Daniel Wildt (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ã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. 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. 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. 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. 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. 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. 9 Padrões de projeto de Mercado, visão geral Coad Patterns http://www.thecoadletter.com/coadletter/ Refactoring Patterns http://www.refactoring.com
  • 10. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 24 Obrigado! Design Patterns para Java Daniel Wildt (daniel.wildt@bluestar.inf.br) JBuilder/Delphi Certified Instructor/Developer http://www.geocities.com/dwildt2