STRUCTURAL

Adapter

Convertire l'interfaccia di una classe in un'altra interfaccia che i client si aspettano. Adapter permette a classi di lavorare insieme che altrimenti non potrebbero a causa di interfacce incompatibili.

Il Problema

Hai bisogno di usare una classe esistente, ma la sua interfaccia non è compatibile con il resto del tuo codice.

La Soluzione

Creare una classe adapter che funge da wrapper, traducendo le chiamate dal client all'interfaccia della classe esistente.

Struttura

Client chiama metodi su Adapter, che delega le chiamate a Adaptee con interfaccia incompatibile.

Partecipanti:
Target
Adapter
Adaptee
Client
Esempi nel Mondo Reale
Integrazione API di terze parti
Legacy code integration
Database adapters
Payment gateway adapters
Quando Usarlo
Quando vuoi usare una classe esistente ma la sua interfaccia non corrisponde
Quando NON Usarlo
Quando puoi modificare direttamente la classe originale
Pattern Correlati