miércoles, 27 de mayo de 2009

Adapter

Propósito
Sirve como un intermediario entre dos clases, convirtiendo las interfaces de una clase para que pueda ser utilizada por otra.
Aplicabilidad
Use el patrón Adapter cuando desee utilizar un objeto en un entorno que espera una interfaz distinta de la ofrecida por el objeto, cuando deba realizar una traducción entre las interfaces de varios objetos, cuando un objeto deba actuar como intermediario para un grupo de clases y solo es posible saber en tiempo de ejecución que clases será utilizada.
Implementación
El patrón Adapter necesita de los siguientes elementos:
•    Framework: Utiliza el Adapter. Puede construir el ConcreteAdapter u obtenerlo de alguna forma.
•    Adapter: La interfaz que define los métodos utilizados por el Framework.
•    ConcreteAdapter: Es la implementación de la interfaz Adapter. Tiene una referencia a Adaptee y traduce las llamadas de los métodos del Framework en llamadas al Adaptee.
•    Adaptee: La interfaz que define los métodos que serán adaptados. Esta interfaz permite que se cargue dinámicamente el Adaptee específico en tiempo de ejecución.
•    ConcreteAdaptee: La implementación de la interfaz Adaptee. La clase que necesita ser adaptada para que pueda ser utilizada por el Framework.
Ventajas e Inconvenientes
Este Patrón ofrece una gran oportunidad para la reutilización del código, permitiendo que interactúen dos o más objetos que supuestamente son incompatibles. Solo se requiere una buena planificación para crear una interfaz suficientemente flexible para que pueda ser adaptado correctamente.
Hay que tener cuidado con la correcta correspondencia en la transferencia de argumentos entre el Framework y el Adaptee.
Patrones Relacionados
•    Bridge: Permite que la separación de la abstracción y la implementación pueda comunicarse con mensajes que sin el Adapter serian incompatibles.
•    Decorator: Este patrón mejora la funcionalidad de la interfaz del Adapter.


No hay comentarios:

Publicar un comentario