patrones

Páginas: 7 (1625 palabras) Publicado: 24 de marzo de 2014


PATRON ADAPTER



















Patrón adaptador (adapter)

El patrón Adaptador convierte la interfaz de una clase en otra que el cliente espera. El adaptador deja que clases con interfaces incompatibles puedan trabajar juntas.
Una clase Adapter implementa un interfaz que conoce a sus clientes y proporciona acceso a una instancia de una clase que no conoce a susclientes, es decir convierte la interfaz de una clase en una interfaz que el cliente espera. Un objeto Adapter proporciona la funcionalidad prometida por un interfaz sin tener que conocer que clase es utilizada para implementar ese interfaz. Permite trabajar juntas a dos clases con interfaces incompatibles.
Sucede a menudo que nos encontramos con librerías que pueden sernos de utilidad, pero queexiste la necesidad de adaptarnos a ellas. En esos casos tenemos dos opciones: modificar todo nuestro código para que se adapte a la librería, o podemos crear un adaptador que traduzca lo nuestro a lo de ellos y lo de ellos a lo nuestro. Un ejemplo sencillo en el mundo Java es el de los Enumeration y los Iterators. Ambos tienen un hasNext()  o  un hasMoreElements() que hacen lo mismo; al igual que unnext() y un nextElement() que hacen lo mismo. Imaginemos que todo lo queramos manejar con Iterators, entonces podemos crear un adaptador que nos “convierta” entre Iterator y Enumeration.
Este patrón se debe utilizar cuando:
Se quiere utilizar una clase que llame a un método a través de una interface, pero se busca utilizarlo con una clase que no implementa ese interface.
Se busca determinardinámicamente que métodos de otros objetos llama un objeto.
No se quiere que el objeto llamado tenga conocimientos de la otra clase de objetos.
Este patrón convierte la interfaz de una clase en otra interfaz que el cliente espera. Esto permite a las clases trabajar juntas, lo que de otra manera no podrían hacer debido a sus interfaces incompatibles.
Por lo general, esta situación se da porque no esposible modificar la clase original, ya sea porque no se tiene el código fuente de la clase o porque la clase es una clase de propósito general, y es inapropiado para ella implementar un interface par un propósito específico. En resumen, este patrón debe ser aplicado cuando debo transformar una estructura a otra, pero sin tocar la original, ya sea porque no puedo o no quiero cambiarla. DIAGRAMA UML




Ejemplo en base al diagrama:

public class Adapter implements Target
{
Adaptado adaptado;
public Adapter ( Adaptado adaptado) {
this.adaptado = adaptado;
}
public void request () {
return adaptado.specificRequest ();
}
}


Temas a tener en cuenta.
Si bien el Adapter tiene unaimplementación relativamente sencilla, se puede llevar a cabo con varias técnicas:
1) Creando una nueva clase que será el Adaptador, que extienda del componente existente e implemente la interfaz obligatoria. De este modo tenemos la funcionalidad que queríamos y cumplimos la condición de implementar la interfaz.
2) Pasar una referencia a los objetos cliente como parámetro a los constructores de los objetosadapter o a uno de sus métodos. Esto permite al objeto adapter ser utilizado con cualquier instancia o posiblemente muchas instancias de la clase Adaptado. En este caso particular, el Adapter tiene una implementación casi idéntica al patrón Decorator.
3) Hacer la clase Adapter una clase interna de la clase Adaptado. Esto asume que tenemos acceso al código de dicha clase y que es permitida lamodificación de la misma.
4) Utilizar sólo interfaces para la comunicación entre los objetos.
(Las opciones más utilizadas son la 1 y la 4).
Ejemplo de adapter en java:
public class Main {
public static void main(String[] args) {
AlumnoViejo aluViej = new AlumnoViejo();
aluViej.setApellido("Castaña");
aluViej.setNombre("Cacho");
GregorianCalendar g = new GregorianCalendar();
g.set(1942,...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • El patrono
  • PATRONO
  • Patrón
  • Patrones
  • El Patron
  • Patrones
  • patrones
  • Patrones

OTRAS TAREAS POPULARES

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS