[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();
}
};
설명
TargetInterface
: 우리가 사용하고자 하는 인터페이스입니다.Adaptee
: 우리가 변환하고자 하는 인터페이스입니다.Adapter
:TargetInterface
를 상속받고,Adaptee
를 멤버로 가지고 있어TargetInterface
의 요청을Adaptee
에 전달하는 어댑터입니다.
예제
int main() {
Adapter adapter;
adapter.request();
return 0;
}
이 예제에서 Adapter
는 TargetInterface
를 구현한 객체처럼 동작합니다. 이때 Adapter
는 Adaptee
의 기능을 사용하여 TargetInterface
의 요청을 처리합니다.
이처럼 C++의 다중 상속을 이용하면 어댑터 패턴을 간단히 구현할 수 있습니다.
위의 예시코드에 사용된 어댑터 패턴 구현 및 다중 상속에 대한 자세한 내용은 아래 출처에서 확인할 수 있습니다.
출처: GeeksforGeeks - Adapter Pattern in C++