Patrón Adapter

Lectura de ~3 minutos

Convierte la interfaz de una clase a otra interfaz que espera el cliente. Permite que varias clases trabajen de forma conjunta aún teniendo intergaces incompatibles.

Aplicabilidad

  • Se necesita utilizar una clase existente, pero su interfaz no coincide con tus necesidades.

  • Se necesita crear una clase reusable que coopera con clases no relacionadas o inesperadas, es decir, clases con las que no existe una interfaz compatible.

  • Se necesita usar muchas subclases existentes, pero no es posible adaptar su interfaz a cada subclase.

Estrucutra

Adapter Diagram

La clase a adaptar es llamada desde otra clase que tiene una interfaz que es esperada y usada por el cliente.

Consecuencias

  • La clase Adapter adapta una clase Adaptada en concreto.Esto hará que la clase Adapter no funcione cuando queramos adoptar una clase y todas sus subclases.

  • La clas Adapter introduce un solo objeto, no hace falta ninguna indirección para obtener la clase adaptada.

  • Un objeto Adapter puede añadir funcionalidad a todo un conjunto de objetos adaptados y sus subtipos de una vez.

  • Hace más difícil sobreescribir el comportamiento de la clase Adaptada. Requiere crear las subclases de la clase adaptada y crear referencia a dichas subclases de la clase Adapter.

Como de costumbre aquí teneis un ejemplito en net core.

Nos vemos en la próximas líneas.

Escrito el 10/12/2018