Sei sulla pagina 1di 12

Decorator

(Decorador)
Estrutural / Objeto e Classe
UNI PAR Uni v er si dade Par anaense
Padr es de Pr oj et os e Fr amewor ks
Prof. Jemerson Fernando Maia
Toledo - Pr - 08/2014

Descrio
Inteno:
Anexar funcionalidades adicionais a um objeto
dinamicamente. Prov uma alternativa flexvel
herana como mecanismo de extenso.
Tambm conhecido como:
Wrapper.
2
O Problema
3
Adicionar funcionalidade por herana
inflexvel e prolifera classes
A Soluo
4
Componentes adicionados por cima de outros,
decorando-os.
A Soluo
5
A Estrutura
6
A Analogia
7
Quando usar este padro
quiser adicionar funcionalidade
dinamicamente e transparentemente;
quiser adicionar funcionalidade que pode
depois ser desativada;
extenso por herana impraticvel (no
disponvel ou produziria uma exploso de
subclasses).
8
Vantagens
Mais flexibilidade do que herana:
Podem ser adicionadas/removidas em tempo
de execuo;
Pode adicionar duas vezes a mesma
funcionalidade.
9
... e desvantagens
O decorador diferente do componente:
A identidade do objeto no pode ser usada de
forma confivel.
Muitos objetos pequenos:
Um projeto que utiliza Decorator pode vir a ter
muitos objetos pequenos e parecidos.
10
Exemplos em Java
Os streams do Java I/O usam:
11
Interceptadores (Interceptors)
Idia semelhante aos decoradores;
Interceptam uma requisio e podem
executar cdigo antes e/ou depois.
12

Potrebbero piacerti anche