terça-feira, 24 de abril de 2012

Decorator

Padrão de Projeto Decorator

                Pertencente à família de padrões estruturais do conjunto de padrões de projeto GoF, o Decorator, ou Wrapper, tem como finalidade agregar comportamentos a objetos existentes em tempo de execução. Portanto, pode-se utilizar também a definição de que o Decorator agrega responsabilidades adicionais a um objeto dinamicamente, oferecendo uma alternativa flexível ao uso de herança para extender uma funcionalidade.

Intenção

· Acrescentar responsabilidades a um objeto dinamicamente
· Prover alternativa flexível ao uso de subclasses para se estender a funcionalidade de uma classe

Motivação

· Objeto usado possui as funcionalidades básicas, mas é necessários adicionar funcionalidades adicionais a ele que podem ocorrer antes ou depois da funcionalidade básica.
· Funcionalidades devem ser adicionadas em instancias individuais e não na classe.
Consequencias

· Mais flexibilidade do que herança
        o Adição ou remoção de responsabilidades em tempo de execução
        o Adição da mesma propriedade mais de uma vez
· Evita o excesso de funcionalidades nas classes.
· Decorator e seu componente não são idênticos.
        o Comparações tornam-se mais complexas
· Resulta em um design que tem vários pequenos objetos, todos parecidos

Aplicabilidade

· Acrescentar ou remover responsabilidades a objetos individuais dinamicamente, de forma transparente
· Evitar a explosão de subclasses para prover todas as combinações de responsabilidades

Implementação



Outro Exemplo
1.  // a caixa de texto é o componente "decorado"  
2.  JTextArea txt = new JTextArea();  
3.    
4.  // "decora" a caixa de texto com barras de rolagem  
5.  Component comp = new JScrollPane(txt);  
6.    
7.  // adiciona o componente com barras de rolagem no form  
8.  getContentPane().add(comp); 



Referencias:

SILVA, V. T. Padrões de Design. Wikipedia.org. Acessado em 2012



Postado por: Hélio Marcus Torres de Arêa Leão

Nenhum comentário:

Postar um comentário