Паттерн адаптер (Adapter Pattern) — структурный паттерн проектирования, который позволяет классам с несовместимыми интерфейсами работать вместе. Он действует как обертка, преобразующая интерфейс одного класса в другой, ожидаемый клиентом.
Применение:
Пример реализации (объектный адаптер):
Представим, есть существующий класс LegacyService с методом oldRequest():
java
И новый интерфейс NewService с методом newRequest():
java
Адаптер ServiceAdapter реализует NewService и содержит ссылку на LegacyService:
java
Клиент может использовать LegacyService через интерфейс NewService:
java
Существует также разновидность — классный адаптер, который использует множественное наследование (если поддерживается языком) или наследование от адаптируемого класса и реализацию целевого интерфейса. В Java из-за отсутствия множественного наследования реализуется через наследование от адаптируемого класса и реализацию адаптерного интерфейса, но такой подход менее гибкий. Объектный адаптер более предпочтителен из-за возможности адаптировать подклассы и избегать жесткой связи.
Плюсы:
Минусы: