Sobes.tech
Назад к вопросам
Junior — Middle
68

Можете объяснить принцип работы паттерна адаптер и в каких случаях его используют?

Компании, где спрашивали
SimbirsoftSimbirsoft

Ответ от нейросети

sobes.tech AI

Паттерн Адаптер (Adapter) используется для того, чтобы "адаптировать" интерфейс одного класса к интерфейсу, который ожидает клиент. Это позволяет классам с несовместимыми интерфейсами работать вместе.

Принцип работы:

  • Есть класс с определённым интерфейсом (Adaptee).
  • Есть клиент, который ожидает другой интерфейс (Target).
  • Адаптер реализует интерфейс Target и внутри себя содержит объект Adaptee.
  • Вызовы клиента перенаправляются адаптером к методам Adaptee, возможно с преобразованием данных.

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

Пример на Java:

// Интерфейс, который ожидает клиент
interface Target {
    void request();
}

// Класс с несовместимым интерфейсом
class Adaptee {
    void specificRequest() {
        System.out.println("Вызов специфического метода");
    }
}

// Адаптер
class Adapter implements Target {
    private Adaptee adaptee;

    public Adapter(Adaptee adaptee) {
        this.adaptee = adaptee;
    }

    @Override
    public void request() {
        adaptee.specificRequest();
    }
}

// Использование
public class Main {
    public static void main(String[] args) {
        Adaptee adaptee = new Adaptee();
        Target adapter = new Adapter(adaptee);
        adapter.request(); // Вызовет specificRequest через адаптер
    }
}