[c++] 다중 상속을 이용한 어댑터 패턴의 구현

다중 상속은 C++에서 강력한 기능 중 하나입니다. 이 기능을 이용하여 어댑터 패턴을 구현할 수 있습니다. 어댑터 패턴은 한 인터페이스를 다른 인터페이스로 변환할 때 사용되는 디자인 패턴입니다.

이 예시에서는 다중 상속을 이용하여 한 클래스의 인터페이스를 다른 클래스의 인터페이스로 변환하는 어댑터 패턴을 구현해보겠습니다.

클래스 설계

다음은 어댑터 패턴을 구현하기 위한 클래스들의 설계입니다.

class TargetInterface {
public:
    virtual void request() = 0;
};

class Adaptee {
public:
    void specificRequest() {
        std::cout << "Adaptee's specific request" << std::endl;
    }
};

class Adapter : public TargetInterface, public Adaptee {
public:
    void request() override {
        specificRequest();
    }
};

설명

예제

int main() {
    Adapter adapter;
    adapter.request();
    return 0;
}

이 예제에서 AdapterTargetInterface를 구현한 객체처럼 동작합니다. 이때 AdapterAdaptee의 기능을 사용하여 TargetInterface의 요청을 처리합니다.

이처럼 C++의 다중 상속을 이용하면 어댑터 패턴을 간단히 구현할 수 있습니다.


위의 예시코드에 사용된 어댑터 패턴 구현 및 다중 상속에 대한 자세한 내용은 아래 출처에서 확인할 수 있습니다.

출처: GeeksforGeeks - Adapter Pattern in C++