Патерн Adapter відноситься до структурних паттернів рівня класу.
Часто в новому проекті розробники хочуть повторно використовувати вже існуючий код. Наприклад, наявні класи можуть мати потрібну функціональністю і мати при цьому несумісні інтерфейси. У таких випадках слід використовувати патерн Adapter.
Сенс роботи цього патерну в тому, що якщо у вас є клас і його інтерфейс не сумісний з кодом вашої системи, то що б вирішити цей конфлікт, ми не змінюємо код цього класу, а пишемо для нього адаптер. Іншими словами Adapter адаптує існуючий код до необхідного інтерфейсу (є перехідником).
Для реалізації необхідно:
- Інтерфейс Target, що описує цільової інтерфейс (той інтерфейс з яким наша система хотіла б працювати);
- Клас Adaptee, який наша система повинна адаптувати під себе;
- Клас Adapter, адаптер який реалізує цільовий інтерфейс.