padrões de projetos - decorator
DESCRIPTION
Padrões de Projetos - DecoratorTRANSCRIPT
-
5/19/2018 Padres de Projetos - Decorator
1/12
Decorator(Decorador)
Estrutural / Objeto e ClasseU N I P R U n i v e r s i d a d e P a r a n a e n s e
P a d r e s d e P r o j e t o s e F r a m e w o r k s
Prof. Jemerson Fernando Maia
Toledo - Pr - 08/2014
-
5/19/2018 Padres de Projetos - Decorator
2/12
Descrio
Inteno: Anexar funcionalidades adicionais a um objetodinamicamente. Prov uma alternativa flexvel
herana como mecanismo de extenso. Tambm conhecido como:
Wrapper.
2
-
5/19/2018 Padres de Projetos - Decorator
3/12
O Problema
3
Adicionar funcionalidade por herana
inflexvel e prolifera classes
-
5/19/2018 Padres de Projetos - Decorator
4/12
A Soluo
4
Componentes adicionados por cima de outros,decorando-os.
-
5/19/2018 Padres de Projetos - Decorator
5/12
A Soluo
5
-
5/19/2018 Padres de Projetos - Decorator
6/12
A Estrutura
6
-
5/19/2018 Padres de Projetos - Decorator
7/12
A Analogia
7
-
5/19/2018 Padres de Projetos - Decorator
8/12
Quando usar este padro
quiser adicionar funcionalidadedinamicamente e transparentemente;
quiser adicionar funcionalidade que pode
depois ser desativada; extenso por herana impraticvel (no
disponvel ou produziria uma exploso desubclasses).
8
-
5/19/2018 Padres de Projetos - Decorator
9/12
Vantagens
Mais flexibilidade do que herana: Podem ser adicionadas/removidas em tempode execuo;
Pode adicionar duas vezes a mesmafuncionalidade.
9
-
5/19/2018 Padres de Projetos - Decorator
10/12
... e desvantagens
O decorador diferente do componente: A identidade do objeto no pode ser usada deforma confivel.
Muitos objetos pequenos: Um projeto que utiliza Decorator pode vir a termuitos objetos pequenos e parecidos.
10
-
5/19/2018 Padres de Projetos - Decorator
11/12
Exemplos em Java
Os streams do Java I/O usam:
11
-
5/19/2018 Padres de Projetos - Decorator
12/12
Interceptadores (Interceptors)
Idia semelhante aos decoradores;
Interceptam uma requisio e podemexecutar cdigo antes e/ou depois.
12