Adapter pattern
Con il nome Adapter (in italiano adattatore) si denota un design pattern utilizzato in informatica nella programmazione orientata agli oggetti.
Il fine dell'Adapter è di fornire una soluzione astratta al problema dell'interoperabilità tra interfacce differenti. Il problema si presenta ogni qual volta nel progetto di un software si debbano utilizzare sistemi di supporto (come per esempio librerie) dotati di interfaccia non perfettamente compatibile con quelle richieste da applicazioni già esistenti. Invece di dover riscrivere parte del sistema, oneroso e non sempre possibile se non si ha a disposizione il codice sorgente, può essere comodo scrivere un Adapter che faccia da tramite tra le diverse interfacce, rendendole così compatibili.
L'Adapter è pertanto un pattern strutturale che può essere basato sia su classi che su oggetti.
Questo design pattern è parte fondamentale della programmazione a oggetti ed è stato formalizzato per la prima volta da Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides - la cosidetta gang of four - nel libro Design Patterns.
Struttura dell'Adapter
- Adaptee: definisce l'interfaccia che ha bisogno di essere adattata.
- Target: definisce l'interfaccia che usa il Client.
- Client: collabora con gli oggetti in conformità con l'interfaccia Target.
- Adapter: adatta l'interfaccia Adaptee all'interfaccia Target.