Back to questions
Samsung Research Center
Junior — Middle
87
В каких ситуациях целесообразно применять паттерн адаптер?
Companies where asked
Answer from AI
sobes.tech AI
Паттерн адаптер применяется, когда нужно сделать интерфейс одного класса совместимым с интерфейсом другого, который ожидает клиент. Это полезно в следующих ситуациях:
- Есть существующий класс с нужной функциональностью, но его интерфейс не подходит для текущей задачи.
- Нужно интегрировать стороннюю библиотеку или модуль с несовместимым интерфейсом.
- Требуется обеспечить совместимость между новыми и устаревшими компонентами.
Пример: у вас есть класс с методом oldRequest(), а клиент ожидает метод newRequest(). Адаптер реализует newRequest(), внутри вызывает oldRequest().
class OldInterface {
public:
void oldRequest() {
// старая реализация
}
};
class Target {
public:
virtual void newRequest() = 0;
};
class Adapter : public Target {
OldInterface* oldObj;
public:
Adapter(OldInterface* obj) : oldObj(obj) {}
void newRequest() override {
oldObj->oldRequest();
}
};