Conhecendo o Decorator

718 visualizações

Publicada em

Seminário sobre o Design Pattern Decorator.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
718
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
8
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Conhecendo o Decorator

  1. 1. Felipe Costa Maurício Linhares Rafael Gomes *  FATEC-JP DM – 2010 - 2
  2. 2. *  * Preciso criptografar e descriptografar texto de forma fácil em Java; * Preciso que isso funcione com arquivos, strings, sockets, qualquer objeto que possa ser tratado como um Reader ou Writer;
  3. 3. Writer OutputStreamWriter StringWriter PipedWriter BufferedWriter * 
  4. 4. *  * Tanto Writer como Reader tem 6 subclasses diretas apenas dentro das classes do JDK; * Várias outras classes herdam dessas subclasses; * Como adicionar uma nova funcionalidade (criptografia) para todos os casos?
  5. 5. *  * Criar uma classe que “empacote” um Writer qualquer, de forma que ela possa processar os dados passados antes de repassar para o destino; * A classe aparenta ser um Writer, mas funciona como um “filtro” ou pré-processador das chamadas;
  6. 6. *  CryptoWriter FileWriter Writer
  7. 7. *  * O CryptoWriter faz o pré-processamento de todas as chamadas e envia os dados já criptografados pro próximo Writer; * Ele não sabe qual o tipo do próximo objeto na ordem de chamada; * Ele não sabe quantos objetos ainda existem “dentro” do objeto que ele recebeu;
  8. 8. * 
  9. 9. *  * A motivação do decorator é adicionar novas funcionalidades a uma família de objetos já existente de forma que todos possam ter acesso a ela independente da árvore de herança. * Toda a API de fluxos e arquivos em Java é feita com decorators;
  10. 10. *  * APIs que usam decorators normalmente tem um número grande de pequenas classes; * A criação dos objetos fica mais complexa, já que agora envolve colocar vários objetos um dentro do outro; * Não é simples descobrir os objetos que “fazem” o decorator;
  11. 11. * 

×