Adapter

Un adaptador envuelve (wraps) la lógica de un objeto, la cual no puede ser alcanzada debido a interfaces incompatibles.

Es muy util cuando se quiere incluir una clase de terceros a nuestra base de código pero, esta usa o retorna tipos de objetos no compatibles con nuestra aplicación. Es necesario que el adaptador pertenezca (herede) de una familia de clases.

adapter

Ejemplo de uso:

Fahrenheit fahrenheit = new Fahrenheit(98.6);

List<MetricTemperatureSystem> temperatureList = Arrays.asList(
    new Celsius(37),
    new CelsiusAdapter(fahrenheit)
);

System.out.println(fahrenheit); // Salida: 98.6° F
System.out.println(temperatureList); // Salida: [37.0° C, 37.0° C]

Código