Você está na página 1de 16

PADRÕES DE

PROJETO:
DECORATOR
Engenharia de Software para Sistemas de Informação II
Antonio Carlos Martins Pereira Junior

Decorator é um padrão de projeto
estrutural que possui como objetivo
designar responsabilidades adicionais
a um objeto de forma dinâmica.

2
DECORATOR

Surgiu da necessidade de adicionar um


comportamento, funcionalidade ou
estado extra a um objeto em tempo de
execução.

3
MOTIVAÇÃO

● Adicionar responsabilidade a um objeto, mas não à sua classe.

APLICABILIDADE

● Adicionar responsabilidade a objetos individuais de forma


dinâmica e transparente;
● Quando existem muitas variações de um objeto;
● Redução de número de subclasses.

4
CONSEQUÊNCIAS

● Flexibilidade maior do que a herança estática;


● Simplificação da codificação;
● Aprimoramento da extensibilidade do objeto.

ESTRUTURA

● Cada objeto Decorator contém outro objeto Decorator;


● Um decorator é como um pequeno composite cujos elementos
possuem cada qual um filho único;
● O propósito do Decorator é compor comportamentos.
5
ESTRUTURA:

6
PROBLEMA

Deseja-se adicionar comportamento


ou estado a objetos individuais em
tempo de execução. A herança não é
viável porque é estática e se aplica a
uma classe inteira. O que fazer?
SOLUÇÃO

Encapsular o objeto original dentro de uma


interface abstrata. Os objetos decoradores e o
objeto central herdam desta interface abstrata. A
interface usa composição recursiva.
7
EXEMPLO CAFETERIA:

8
EXEMPLO CAFETERIA (Solução):

9
EXEMPLO ARMA:

10
EXEMPLO ARMA (Solução):

11
EXEMPLO ARMA (Solução):

12
EXEMPLO ARMA (Solução):

13
EXEMPLO ARMA (Solução):

14
EXEMPLO ARMA (Solução):

15
REFERÊNCIAS

1. FREEMAN, Eric e Elisabeth. Use a Cabeça! Padrões de projetos. 2ª Edição Revisada. Editora
Alta Books, 2008.
2. Wikipédia. Decorator. Disponível em: <http://pt.wikipedia.org/wiki/Decorator> Acessado em 25 de
novembro de 2017.
3. Decorator Design Pattern. Disponível em: <https://sourcemaking.com/design_patterns/decorator>
Acessado em 25 de novembro de 2017.
4. LIRA, Eduardo et al. Design Patterns: Adapter e Decorator. SlideShare, 2011.

Você também pode gostar