conhecendo o decorator
Post on 22-Jul-2015
596 Views
Preview:
TRANSCRIPT
*
* 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;
*
* 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?
*
* 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;
*
* 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;
*
* 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;
*
* 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;
top related