320x100
구조
#pragma once
#include <iostream>
class BaseClass
{
public:
virtual void operation1() = 0;
virtual void operation2() = 0;
void templateFunction()
{
operation1();
std::cout << "Something" << std::endl;
operation2();
}
};
class DerivedClass : public BaseClass
{
void operation1() override
{
std::cout << "operation1" << std::endl;
}
void operation2() override
{
std::cout << "operation2" << std::endl;
}
};
사용
int main()
{
BaseClass* baseClass = new DerivedClass;
baseClass->templateFunction();
return 0;
}
알고리즘을 템플릿화 해서 상위 클래스에서 알고리즘의 뼈대만 정의하고, 구체적인 구현은 추상화(operation1, operation2)해서 상속을 통해 구현하는 패턴이다.
320x100
'프로그래밍 > GoF' 카테고리의 다른 글
[구조 패턴] - 브릿지(Bridge) (0) | 2022.01.10 |
---|---|
[구조 패턴] - 어댑터(Adapter) (0) | 2022.01.10 |
[행동 패턴] - 방문자(Visitor) (0) | 2022.01.09 |
[행동 패턴] - 전략(Strategy) (0) | 2022.01.08 |
[행동 패턴] - 상태(State) (0) | 2022.01.08 |