patrones de diseño-decorador

Upload: ivan-quintero-reyes

Post on 14-Apr-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 Patrones de diseo-decorador

    1/14

    PATRONES DE DISE

    DECORA

    PROFESOR: ING. RENE CR

    ALUMNO: IVAN QU

  • 7/30/2019 Patrones de diseo-decorador

    2/14

    El patrn Decorator responde a la necesidad dedinmicamente funcionalidad a un Objeto.Esto nos pe

    tener que crear sucesivas clases que hereden de la

    incorporando la nuevafuncionalidad, sino otras

    implementan y se asocian a la primera. Es un patrn estru

  • 7/30/2019 Patrones de diseo-decorador

    3/14

    Su intencin es decorar las responsabilidades d

    objetodinmica y transparentemente a sus clie

    Alternativa a laherencia para decorar la responsab

    de un subconjuntode objetos

  • 7/30/2019 Patrones de diseo-decorador

    4/14

    DECORATOR

    1) Nombre y clasificacin: Decorator. Estructural

    2) Otros nombres: Wrapper(Envoltorio)

    3) Intencin: Decorar las responsabilidades de un objeto dinmica y

    transparentemente a sus clientes. Alternativa a la herencia para de

    responsabilidad de un subconjunto de objetos

    4) Motivacin: Ejemplo explosin de herencia con extensiones repetidas: cafs con distint

    Necesidad de cambiar las extensiones en tiempo de ejecucin

    Repeticin de cdigo

    Reutilizacin

  • 7/30/2019 Patrones de diseo-decorador

    5/14

    5) Aplicabilidad:

    Aadir o eliminar funcionalidades a objetos de forma dinm

    transparente

    Ventana de login con barra de progreso

    Evitar una explosin de subclases para poder tener todas la

    combinaciones de una serie de funcionalidades independie

    Streams en Java

  • 7/30/2019 Patrones de diseo-decorador

    6/14

  • 7/30/2019 Patrones de diseo-decorador

    7/14

    7) Participantes

    AbstractComponent: Supertipo de los objetos que puededecorados

    ConcreteComponent: define un objeto susceptible de ser

    decorado

    AbstractDecorator:

    Decorator1 -DecoratorN: decora una o varias operaciones

    ConcreteComponent

  • 7/30/2019 Patrones de diseo-decorador

    8/14

    8) Colaboraciones

    El decorador redirige sus mensajes sobre un objeto d

    AbstractComponent. Opcionalmente, puede invocar m

    adicionales antes y despus de la redireccin

    (E) Compararlo con el PD Strategy

  • 7/30/2019 Patrones de diseo-decorador

    9/14

    9) Consecuencias (ventajas e inconvenientes)

    Mayor flexibilidad que la herencia, incluso puede decorarse un veces con el mismo decorador, lo que sera imposible con la herencia

    Cifrar doblemente un texto

    Favorece la definicin de interfaces y clases bases ligeras. Slo se

    funcionalidades que se necesitan, no son necesarias megaclas

    capaces de hacerlo todo Cuidado: ha de respetarse la interfaz. P.e, se podra aadir la posibilidad

    contenido del archivo asociado al Tracer?

    Incremento de pequeos objetos. Ms difciles de entender y de de

  • 7/30/2019 Patrones de diseo-decorador

    10/14

    10) Implementacin

    AbstractDecoratorcuando slo existe un decorador?

    Mantener ligera AbstractComponent. Facilita la impleme

    los decoradores.

    La decoracin es recurrente y en general no es conmutati

    El ConcreteComponent puede establecerse en el cons

    decorador o posteriormente mediante o

    Get/SetDecorable

  • 7/30/2019 Patrones de diseo-decorador

    11/14

    11)

  • 7/30/2019 Patrones de diseo-decorador

    12/14

  • 7/30/2019 Patrones de diseo-decorador

    13/14

    13) Patrones relacionados:

    Adapter. En el PD Adapterse cambia la inter

    Adaptable, en el Decoratorse respeta l

    AbstractComponent

    Strategy. En el PD Strategyse cambia las tripas

    objeto, el Decorator slo la piel. Adems es transppara el componente

  • 7/30/2019 Patrones de diseo-decorador

    14/14

    EJEMPLO EN JAVA