Sobes.tech
Junior — Middle
118

Hangi durumlarda adaptör desenini kullanmak uygundur?

Sorulan şirketler
Samsung Research CenterSamsung Research Center

AI'dan gelen yanıt

sobes.tech yapay zeka

Паттерн адаптер применяется, когда нужно сделать интерфейс одного класса совместимым с интерфейсом другого, который ожидает клиент. Это полезно в следующих ситуациях:

  • Есть существующий класс с нужной функциональностью, но его интерфейс не подходит для текущей задачи.
  • Нужно интегрировать стороннюю библиотеку или модуль с несовместимым интерфейсом.
  • Требуется обеспечить совместимость между новыми и устаревшими компонентами.

Пример: у вас есть класс с методом 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();
    }
};