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

Можете объяснить, в чем заключается принцип работы и назначение шаблона проектирования Adapter?

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

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

sobes.tech AI

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

Adapter выступает как «переводчик» между двумя объектами.

Пример на Java:

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

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

// Адаптер, который реализует Target и вызывает Adaptee
class Adapter implements Target {
    private Adaptee adaptee;

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

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

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

Таким образом, Adapter позволяет интегрировать существующие классы без изменения их кода.