padrões de projetos - decorator

Upload: alex-maycon-da-silva

Post on 09-Oct-2015

29 views

Category:

Documents


0 download

DESCRIPTION

Padrões de Projetos - Decorator

TRANSCRIPT

  • 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