Adapter, Bridge, Decorator.. El patrón adapter convierte la interfaz de una clase en la interfaz...

15
PATRONES DE DISEÑO PATRONES DE DISEÑO Adapter, Bridge, Decorator.

Transcript of Adapter, Bridge, Decorator.. El patrón adapter convierte la interfaz de una clase en la interfaz...

Page 1: Adapter, Bridge, Decorator.. El patrón adapter convierte la interfaz de una clase en la interfaz que el cliente espera. El adapter permite que clases.

PATRONES DE DISEÑOPATRONES DE DISEÑOAdapter, Bridge, Decorator.

Page 2: Adapter, Bridge, Decorator.. El patrón adapter convierte la interfaz de una clase en la interfaz que el cliente espera. El adapter permite que clases.

El patrón adapter convierte la interfaz de una clase en la interfaz que el cliente espera.

El adapter permite que clases con interfaces incompatibles puedan trabajar juntas.

Este patrón se denomina también wrapper.

Page 3: Adapter, Bridge, Decorator.. El patrón adapter convierte la interfaz de una clase en la interfaz que el cliente espera. El adapter permite que clases.
Page 4: Adapter, Bridge, Decorator.. El patrón adapter convierte la interfaz de una clase en la interfaz que el cliente espera. El adapter permite que clases.

Se desea utilizar un clase ya existente pero cuya interfaz no coincide con la que se necesita.

Se desea crear una clase que colabora con otras clases que no tienen interfaces compatibles.

Se desea adaptar varias subclases ya existentes adaptando la interfaz de su clase padre común (object adapter).

Page 5: Adapter, Bridge, Decorator.. El patrón adapter convierte la interfaz de una clase en la interfaz que el cliente espera. El adapter permite que clases.
Page 6: Adapter, Bridge, Decorator.. El patrón adapter convierte la interfaz de una clase en la interfaz que el cliente espera. El adapter permite que clases.
Page 7: Adapter, Bridge, Decorator.. El patrón adapter convierte la interfaz de una clase en la interfaz que el cliente espera. El adapter permite que clases.

Target: Define la interfaz especifica del dominio en el que se quiere hacer uso de la clase que se adapta.

Client: Utiliza objetos que implementan la interfaz definida por el target.

Adaptee: Presenta su interfaz original, que es la que se tiene que adaptar.

Adapter: Adapta la interfaz del objeto adaptado a la definida por el target.

Page 8: Adapter, Bridge, Decorator.. El patrón adapter convierte la interfaz de una clase en la interfaz que el cliente espera. El adapter permite que clases.

El patrón Bridge, también conocido como Handle/Body, es una técnica usada en programación para desacoplar una abstracción de su implementación, de manera que ambas puedan ser modificadas independientemente sin necesidad de alterar por ello la otra.

Esto es, se desacopla una abstracción de su implementación para que puedan variar independientemente.

Page 9: Adapter, Bridge, Decorator.. El patrón adapter convierte la interfaz de una clase en la interfaz que el cliente espera. El adapter permite que clases.

Se desea evitar un enlace permanente entre la abstracción y su implementación. Esto puede ser debido a que la implementación debe ser seleccionada o cambiada en tiempo de ejecución.

Se desea compartir una implementación entre múltiples objetos (quizá usando contadores), y este hecho debe ser escondido a los clientes.

Page 10: Adapter, Bridge, Decorator.. El patrón adapter convierte la interfaz de una clase en la interfaz que el cliente espera. El adapter permite que clases.
Page 11: Adapter, Bridge, Decorator.. El patrón adapter convierte la interfaz de una clase en la interfaz que el cliente espera. El adapter permite que clases.

Abstraction : define una interface abstracta. Mantiene una referencia a un objeto de tipo Implementor.

RefinedAbstraction :extiende la interface definida por Abstraction

Implementor : define la interface para la implementación de clases. Esta interface no se tiene que corresponder exactamente con la interface de Abstraction; de hecho, las dos interfaces pueden ser bastante diferente.

ConcreteImplementor : implementa la interface de Implementor y define su implementación concreta.

Page 12: Adapter, Bridge, Decorator.. El patrón adapter convierte la interfaz de una clase en la interfaz que el cliente espera. El adapter permite que clases.

Abstraction: emite los pedidos de los clientes a su objeto Implementor.

Page 13: Adapter, Bridge, Decorator.. El patrón adapter convierte la interfaz de una clase en la interfaz que el cliente espera. El adapter permite que clases.

El patrón Decorator responde a la necesidad de añadir dinámicamente funcionalidad a un Objeto. Esto nos permite no tener que crear sucesivas clases que hereden de la primera incorporando la nueva funcionalidad, sino otras que la implementan y se asocian a la primera.

Page 14: Adapter, Bridge, Decorator.. El patrón adapter convierte la interfaz de una clase en la interfaz que el cliente espera. El adapter permite que clases.
Page 15: Adapter, Bridge, Decorator.. El patrón adapter convierte la interfaz de una clase en la interfaz que el cliente espera. El adapter permite que clases.

Añadir objetos individuales de forma dinámica y transparente.

Responsabilidades de un objeto pueden ser retiradas .

Cuando la extensión mediante la herencia no es viable

Hay una necesidad de extender la funcionalidad de una clase, pero no hay razones para extenderlo a través de la herencia.

Hay la necesidad de extender dinámicamente la funcionalidad de un objeto y quizás quitar la funcionalidad extendida.