Adapter pattern

Los patrones de diseño esta divididos en tres categorías: creaciónestructural y de comportamiento.

El patrón adapter es un patrón de la categoría de «estructural». Utilizando este pattern, podremos hacer que dos objetos con interfaces incompatibles colaboren en un mismo cliente.

ESCENARIO

ALERTA AL CONSUMIDOR! El ejemplo es para ilustrar este patrón, por favor no lo uséis en producción!

Imaginaros, que tenéis una fabrica de monitores y siempre habéis fabricado monitores panorámicos, pero de repente, desarrolláis un monitor cuadrado.

Vuestra aplicación para calcular el área, sólo puede calcular, el área de rectángulos. Es el momento de pasarle un adaptador al método que calcula el área de los rectángulos, para que pueda transformar este cuadrado

CUANDO USARLO

Muchas veces tenemos que intregranos con servicios externos o incluso utilizar librerías, que requieren un tipo especifico de objeto/interfaz, en ese momento, o bien adaptamos nuestro negocio o utilizamos adaptadores que adapten nuestros objetos a estas interfaces o integraciones.

La arquitectura hexagonal, requiere de este patrón ya que es port/adapter architecture, el nombre de hexagonal es un poco desafortunado. Por otro lado la gente la suele ligar completamente con DDD. Todo DDD, es hexagonal pero no todo hexagonal es DDD

ESTRUCTURA

ACTORES

  • Interfaz cliente: Interfaz que acepta el cliente
  • Cliente: método u objeto de negoció que hace una acción sobre una interfaz
  • Objeto adaptable: objecto de negocio a adaptar
  • Adaptador: objeto que se construye en base de un objeto adaptable y cumple la interfaz del cliente

VENTAJAS E INCONVENIENTES

Como inconveniente, es posible caer en adaptar objetos en vez de un buen diseño, que permita el intercambio de objetos.

Solo permite la adaptación de un objeto y no se sus subclases.

El adaptador, puede cambiar el comportamiento del objeto adaptado.

IMPLEMENTACIÓN

Deja una respuesta

A %d blogueros les gusta esto: