Назад к вопросам
Simbirsoft
Junior — Middle
67
Можете объяснить принцип работы паттерна адаптер и в каких случаях его используют?
Компании, где спрашивали
Ответ от нейросети
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 через адаптер
}
}