Другое название: Wrapper (Обертка).

Назначение: преобразует интерфейс одного класса в интерфейс другого, который ожидают клиенты, обеспечивает совместную работу классов с несовместимыми интерфейсами, которая без него была бы невозможна.

Общая структура решения.

Адаптер класса применяет реализацию одного интерфейса одновременно с наследованием от другого класса, чтобы адаптировать этот класс к заданному интерфейсу:

 

 

Адаптер объекта применяет реализацию интерфейса и композицию объектов:

 

 

Target – целевой объект: определяет зависящий от предметной области интерфейс, которым пользуется Client.

Client – клиент: вступает во взаимоотношения с объектами, удовлетворяющими интерфейсу Target.

Adaptee – адаптируемый объект: определяет существующий интерфейс, который нуждается в адаптации.

Adapter  – адаптер: адаптирует интерфейс Adaptee к интерфейсу Target.

Клиенты вызывают операции экземпляра адаптера Adapter. В свою очередь, адаптер вызывает операции адаптируемого объекта или класса Adaptee, который и выполняет запрос.