Adapter, Bridge, Decorator.
PATRONES DE DISEÑO
ADAPTER
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.

EJEMPLO:
APLICACIÓN:
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).

ESTRUCTURA - CLASS ADAPTER
ESTRUCTURA - OBJECT ADAPTER
PARTICIPANTES
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.

BRIGE
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.

SE USA EL PATRÓN BRIDGE CUANDO:
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.

ESTRUCTURA:
PARTICIPANTES:




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.
COLABORACIONES:

Abstraction: emite los pedidos de los clientes a
su objeto Implementor.
DECORATOR

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.
ESTRUCTURA:
APLICABILIDAD





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.
Descargar

PATRONES DE DISEÑO