sábado, 16 de julio de 2016

Adapter Pattern

Propósitos

 Permite que clases con interfaces distintas trabajen juntas para crear un objeto común mediante en el cual se puedan comunicar e interactuar.
 Envolver una clase existente con una nueva interfaz.
 Unir un antiguo componente a un nuevo sistema.

Problema


Cuando un componente externo ofrece una funcionalidad que deseemos reutilizar, pero su “percepción del mundo” no es compatible con la filosofía y arquitectura del sistema que se ha iniciado a desarrollar.

Se usa cuando


 Una clase utilizada no cumple con los requerimientos de una interfaz.
 Condiciones complejas atan el comportamiento del objeto a su estado.
 Las transiciones entre los estados de los objetos necesitan ser explícitas.

Ejemplos en el JDK

 java.util.Arrays#asList()
 java.io.InputStreamReader(InputStream)
 java.io.OutputStreamWriter(OutputStream)
 javax.xml.bind.annotation.adapters.XmlAdapter#marshal()
y #unmarshal()

No hay comentarios:

Publicar un comentario