DECORATOR PATTERN patron estructural decorador

Insert YouTube videos in PowerPont slides with aS Desktop
Views:
 
     
 

Presentation Description

DECORATOR PATTERN patron estructural decorador Marco Aurelio Gonzalez Reyes

Comments

Presentation Transcript

DECORATOR : 

DECORATOR MARCO A. GONZALEZ REYES JAVIER RAMIREZ ANGULO DECORATOR DECORATOR ABSTRAC FA • Propósito – Proveer una interfaz para crear familias de objetos sin necesitar especificar las clases concretas • Propósito – Proveer una interfaz para crear familias de objetos sin necesitar especificar las clases concretas • Propósito – Proveer una interfaz para crear familias de objetos sin necesitar especificar las clases concretas • Propósito – Proveer una interfaz para crear familias de objetos sin necesitar especificar las clases concretas CTORY DECORATOR DECORATOR DECORATOR DECORATOR DECORATOR DECORATOR DECORATOR DECORATOR DECORATOR DECORATOR DECORATOR DECORATOR DECORATOR DECORATOR 1

PROPOSITO : 

PROPOSITO Adjunta responsabilidades adicionales a un objeto dinámicamente Es una alternativa para extender las funcionalidades sin hacer subclases 2

MOTIVACION : 

MOTIVACION Ejemplo explosión de herencia con extensiones repetidas: cafés con distintos condimentos Necesidad de cambiar las extensiones en tiempo de ejecución Repetición de código Reutilización 3

APLICABILIDAD : 

APLICABILIDAD Añadir responsabilidades a objetos individuales de forma dinámica y transparente sin afectar otros objetos Evitar una explosión de subclases para poder tener todas las combinaciones de una serie de funcionalidades independientes Para responsabilidades que se pueden retirar luego. Cuando la extensión por subclases no es viable 4

ESTRUCTURA : 

ESTRUCTURA 5

PARTICIPANTES : 

PARTICIPANTES Componente: Define la interfaz para los objetos a los que se pueden añadir responsabilidad dinámicamente. Componente Concreto: Define un objeto al que se pueden añadir responsabilidades. Decorador: Mantiene una referencia a un objeto Componente y define una interfaz que conforma la interfaz de Componente. Decorador concreto: Añade responsabilidades al componente 6

COLABORACIONES : 

COLABORACIONES El decorador redirige peticiones a su objeto componente que puede realizar operaciones adicionales antes o después de reenviar la petición. 7

Consecuencias (ventajas e inconvenientes) : 

Consecuencias (ventajas e inconvenientes) Mayor flexibilidad que la herencia, incluso puede decorarse un objeto varias veces con el mismo decorador, lo que sería imposible con la herencia. Favorece la definición de interfaces y clases bases ligeras. Sólo se ‘carga’ con las funcionalidades que se necesitan, no son necesarias megaclases que sean capaces de hacerlo todo. Incremento de ‘pequeños’ objetos. Más difíciles de entender y de depurar Un decorador y su componente no son idénticos. Un decorador actúa como una encerrado transparente. 8

IMPLEMENTACIÓN : 

IMPLEMENTACIÓN Concordancia de las interfaces: La interfaz de un objeto decorador tiene que conforma con la interfaz del componente que decora. Las clases de Decorador Concreto tienen que heredar de una clase común. No utiliza una clase abstracta para la clase Decorador si tiene que añadir una sola responsabilidad 9

IMPLEMENTACIÓN : 

IMPLEMENTACIÓN Mantener las clases Componente con un peso ligero Debería concentrar en la definición de la interfaz, no en almacenar los datos. Dejar la definición de datos a sus subclases. Cambia la piel de un objeto en vez de sus tripas Strategy es mejor para cambiar el contenido dentro Un componente no tiene que saber sobre su decorador. El decorador es transparente a un componente. Con el estrategia el componente sabe que extensiones puede tener. 10

USOS CONOCIDOS : 

USOS CONOCIDOS java.io. (no tiene get/setdecorable) 11

USOS CONOCIDOS : 

USOS CONOCIDOS java.util.zip 12

EJEMPLO : 

EJEMPLO 13

PATRONES RELACIONADOS : 

PATRONES RELACIONADOS Adapter. En el P.D. Adapter se cambia la interfaz del Adaptable, en el Decorator se respeta la del AbstractComponent Strategy. En el P.D. Strategyse cambia las tripas de un objeto, el Decorator sólo la piel. Además es transparente para el componente Composite. En el P.D. Composite permite la realizar la composición de un arbol de objetos. 14

REFERENCIAS : 

REFERENCIAS http://nuevosprogramadores.com/2008/11/patron-decorador-definicion-diagramas-e-implementacion/ 15