Sobes.tech
Back to questions
Junior — Middle
87

В каких ситуациях целесообразно применять паттерн адаптер?

Companies where asked
Samsung Research CenterSamsung Research Center

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();
    }
};