Реалізація
На малюнку нижче показана діаграма класів UML (ЮМЛ) патерну Адаптер.
Класи і об’єкти, які беруть участь у шаблоні проектування:
Застосування
Патерн Адаптер використовується в наступних випадках:
- Коли існує клас (Target), який викликає методи, визначені в інтерфейсі. Крім того, є інший клас (Adapter), який не реалізує інтерфейс, але реалізує операції та методи, які повинні викликатися з першого класу через інтерфейс. У програміста немає можливості змінити ні один з існуючих кодів. Адаптер реалізує свій інтерфейс і стане мостом між двома класами.
- Коли при написанні класу (Target) для загального використання важливо спиратися на деякі загальні інтерфейси, і у розробника є деякі реалізовані класи, не реалізують інтерфейс. Також цей клас (Target) повинен бути викликаною.
Хорошим прикладом для застосування адаптера можуть служити оболонки, використовувані для прийняття сторонніх бібліотек і структур: більшість додатків, що використовують сторонні бібліотеки, вживають адаптер в якості проміжного рівня між додатком і сторонньої бібліотекою для відділення додатки від бібліотеки. Якщо необхідно використовувати іншу бібліотеку, для нової бібліотеки потрібно тільки адаптер без необхідності зміни коду програми.