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

В чем заключается основная функция паттерна Adapter в проектировании программного обеспечения?

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

sobes.tech AI

Основная функция паттерна Adapter — обеспечить совместимость интерфейсов двух несвязанных классов, позволяя им работать вместе. Adapter выступает как «переводчик», преобразуя интерфейс одного класса в интерфейс, ожидаемый клиентом.

Например, если у вас есть класс с определённым методом, а клиент ожидает другой метод, Adapter реализует нужный интерфейс и внутри вызывает методы адаптируемого класса.

Пример на 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();
    }
}

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