[c++] 추상 클래스와 인터페이스의 프레임워크 통합 방법

이번에는 C++에서 추상 클래스와 인터페이스를 함께 사용하여 프레임워크를 효과적으로 구성하는 방법에 대해 알아보겠습니다.

추상 클래스와 인터페이스

추상 클래스는 하나 이상의 순수 가상 함수(가상 함수 중에서도 “= 0”을 사용하여 실체화를 금지한 함수)를 포함하고 있는 클래스입니다. 이는 상속 받는 클래스에서 반드시 재정의해야 하는 함수를 지정하여, 클래스의 일반적인 동작을 정의하고, 이를 상속받는 클래스에서 세부 구현을 진행할 수 있도록 합니다.

인터페이스는 반드시 순수 가상 함수로만 이루어진 클래스로, 순수 가상 함수만을 갖고 있어서 실제로는 아무런 구현이 없는 클래스입니다. 인터페이스를 상속받는 클래스는 반드시 해당 함수들을 구현해야 합니다.

프레임워크 통합 방법

C++에서 추상 클래스와 인터페이스를 함께 사용하여 프레임워크를 통합하는 방법은 다음과 같습니다.

추상 클래스

class AbstractClass {
public:
    virtual void commonMethod() = 0;
    virtual void methodToBeImplemented() = 0;
};

위의 예시에서 AbstractClasscommonMethodmethodToBeImplemented 함수를 순수 가상 함수로 선언하여 추상 클래스를 정의하였습니다.

인터페이스

class Interface {
public:
    virtual void interfaceMethod() = 0;
};

Interface는 단 하나의 순수 가상 함수 interfaceMethod를 가지고 있는 인터페이스 클래스입니다.

통합

이 두 가지를 함께 사용하여 프레임워크를 통합하려면, 추상 클래스를 구현할 때 인터페이스를 포함시키는 방식을 취할 수 있습니다.

class ConcreteClass : public AbstractClass, public Interface {
public:
    void commonMethod() override {
        // 구현
    }

    void methodToBeImplemented() override {
        // 구현
    }

    void interfaceMethod() override {
        // 구현
    }
};

위의 예시에서 ConcreteClassAbstractClassInterface를 상속받아 그 모든 함수들을 구현함으로써 프레임워크를 효과적으로 통합할 수 있습니다.

이러한 방식으로 C++에서 추상 클래스와 인터페이스를 통합하여 프레임워크를 구성할 수 있습니다.

참고 문헌: