Назад к вопросам
Middle
163
questionbank
Как адаптер связан с паттерном 'Адаптер' (Adapter)?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Адаптер в общих чертах — это "переходник" или "преобразователь", позволяющий несовместимым сущностям взаимодействовать.
Паттерн "Адаптер" в программировании реализует именно эту идею. Он позволяет классам с несовместимыми интерфейсами работать вместе, обертывая один класс в другой. Адаптер преобразует интерфейс одного класса в другой интерфейс, который ожидается клиентом.
Например:
// Несовместимый интерфейс
class OldSystem {
oldRequest() {
console.log("Запрос в старой системе");
}
}
// Новый интерфейс, который ожидает клиент
class NewSystemTarget {
request() {
console.log("Запрос в новой системе");
}
}
// Паттерн Адаптер
class OldSystemAdapter extends NewSystemTarget {
constructor(oldSystem) {
super();
this.oldSystem = oldSystem;
}
request() {
// Адаптер преобразует вызов нового интерфейса в вызов старого
this.oldSystem.oldRequest();
}
}
// Клиент работает с новым (целевым) интерфейсом
const oldSystem = new OldSystem();
const adapter = new OldSystemAdapter(oldSystem);
// Клиент вызывает метод request, не зная о внутренней работе OldSystem
adapter.request(); // Выводит "Запрос в старой системе"