Другое название: Wrapper (Обертка).
Назначение: преобразует интерфейс одного класса в интерфейс другого, который ожидают клиенты, обеспечивает совместную работу классов с несовместимыми интерфейсами, которая без него была бы невозможна.
Общая структура решения.
Адаптер класса применяет реализацию одного интерфейса одновременно с наследованием от другого класса, чтобы адаптировать этот класс к заданному интерфейсу:
Адаптер объекта применяет реализацию интерфейса и композицию объектов:
Target – целевой объект: определяет зависящий от предметной области интерфейс, которым пользуется Client.
Client – клиент: вступает во взаимоотношения с объектами, удовлетворяющими интерфейсу Target.
Adaptee – адаптируемый объект: определяет существующий интерфейс, который нуждается в адаптации.
Adapter – адаптер: адаптирует интерфейс Adaptee к интерфейсу Target.
Клиенты вызывают операции экземпляра адаптера Adapter. В свою очередь, адаптер вызывает операции адаптируемого объекта или класса Adaptee, который и выполняет запрос.