domingo, 10 de mayo de 2009
Adapter

Adapter es un patrón estructural que es utilizado para que dos interfaces no relacionadas puedan trabajar juntas, la conexión entre ambas es llamada un Adaptador. Básicamente el propósito del Adaptador es que convierte la interfaz de una clase en otra que es la que esperan los clientes. Es decir permite que trabajen juntas, clases que de otro modo no podrían hacerlo debido a que tengan interfaces incompatibles.

Características generales de este patrón:

Nombre:

Adapter.

También conocido como:

Wrapper.

Propósito:

Convertir la interfase de una clase en otra interfase que el cliente espera. 

El adapter permite que clases trabajen juntas, que de otra manera no podrian por las interfases incompatibles.

Aplicabilidad:

Este patrón se utiliza generalmente cuando:

· Se quiere usar una clase existente, y su interfase no concuerda con la que se necesita.

· Se quiere crear una clase reusable que coopere con clases no relacionadas o imprevistas, esto es,  clases que no tienen interfases compatibles necesariamente.

· Un objeto debe actuar como intermediario de un grupo de clases, y no es posible saber qué clase se utilizará hasta el tiempo de ejecución..

Estructura:

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.

Colaboraciones:

El Cliente llama a las operaciones en la instancia del Adapter. Luego, el Adapter llama al Adaptee (el Adaptado) y lleva a cabo las operaciones pedidas.

Consecuencias:

· Adapter Adapta el Adaptee al Target informando a un class Adapter concreto. Como consecuencia, un class Adapter no funciona cuando queremos adaptar una clase y todas sus subclases (subclassing).

· El Adapter sobreescribe el comportamiento del Adaptee ya que el Adapter es una subclase del Adapteee.

· Introduce solamente un objeto y no hay un  puntero adicional para conseguir el Adaptee.

Patrones relacionados:

· Bridge.

· Decorator.

· Proxy.


Etiquetas: , ,

 
posted by Camilo Mojica at 10:17 | Permalink |


0 Comments: