- 알고리즘의 뼈대만을 정의하고 각 단계에서 수행할 구체적 처리는 서브클래스 쪽에서 하는 패턴
- 어떤 한 알고리즘을 이루는 부분 중 변하지 않는 부분을 한번 정의해 놓고 다양해질 수 있는 부분은 서브 클래스에서 정의할 수 있도록 남겨두고자 할때
- 서브클래스 사이의 공통적인 행동을 추출하여 하나의 공통 클래스에 몰아둠으로써 코드 중복을 피하고 싶을때
AbstractClass클래스
class AbstractClass { public: virtual void Operation1() = 0; virtual void Operation2() = 0; /* template method */ void Operation3() { cout << "Operation3" << endl; }; };
ConcreteClass클래스
class ConcreteClass : public AbstractClass { public: void Operation1() { cout << "Operation1" << endl; }; void Operation2() { cout << "Operation2" << endl; }; };
실행부분
void main() { AbstractClass* pClass = new ConcreteClass(); pClass->Operation1(); pClass->Operation2(); pClass->Operation3(); delete pClass; }
UML - class 다이어그램
- GoF의 디자인 패턴(개정판) 재사용성을 지닌 객체지향 소프트웨어의 핵심요소
- http://psh85a.tistory.com/57
댓글 없음:
댓글 쓰기
참고: 블로그의 회원만 댓글을 작성할 수 있습니다.