Вы можете использовать шаблон проектирования адаптера, когда вам приходится иметь дело с различными интерфейсами с похожим поведением (что обычно означает классы с похожим поведением, но с разными методами).Примером этого может быть класс для подключения к телевизору Samsung, а другой - для подключения к телевизору Sony.Они будут иметь общее поведение, такое как открытое меню, запуск воспроизведения, подключение к сети и т. Д., Но каждая библиотека будет иметь свою реализацию (с разными именами методов и сигнатурами).Эти реализации для разных поставщиков называются Adaptee на диаграммах UML.
Итак, в вашем коде (называемом Client на диаграммах UML) вместо жесткого кодаВ вызовах методов каждого поставщика (или Adaptee ) вы можете создать универсальный интерфейс (называемый Target на диаграммах UML), чтобы обернуть эти сходные поведения и работать только с одним типом объекта.
Адаптеры будут затем реализовывать интерфейс Target , делегируя свои вызовы методов Adaptees , которые передаются в Адаптеры via constructor.
Чтобы вы могли реализовать это в коде Java, я написал очень простой проект, использующий точно такой же пример, упомянутый выше, с использованием адаптеров для работы с несколькими интерфейсами Smart TV.Код небольшой, хорошо документированный и не требует пояснений, поэтому покопайтесь в нем, чтобы увидеть, как будет выглядеть реальная реализация.
Просто скачайте код и импортируйте его в Eclipse (или вашу любимую IDE) в качестве проекта Maven.,Вы можете выполнить код, запустив org.example.Main.java .Помните, что здесь важно понимать, как классы и интерфейсы собираются вместе для разработки шаблона.Я также создал несколько поддельных Adaptees в пакете com.thirdparty.libs .Надеюсь, это поможет!
https://github.com/Dannemann/java-design-patterns