Wednesday, December 27, 2006
[본문스크랩] 템플릿 패턴(Template Method)
Template Method
1. 컨텍스트
일부 단계를 하위 클래스에서 구현하게 하고, 오퍼레이션 알고리즘의 뼈대(skeleton)만을 정의하는 패턴. Template Method는 하위 클래스가 알고리즘의 구조는 변경하지 않고, 알고리즘의 특정 단계를 재정의하는 것을 가능하게 한다.
2. 적용 영역
l 변하지 않는 알고리즘은 한번만 구현하고, 다양한 변이가 존재하는 행위들에 대해서는 하위 클래스가 이를 구현하도록 유도한다.
l 하위 클래스 사이의 공통적인 행위들을 추출하여 공통적인 클래스를 정의하면, 코드의 중복을 막을 수 있다.
l 하위 클래스의 확장을 통제하기 위해 Template Method를 사용할 수 있다. 이러한 경우에는 Template Method를 후크(hook) 오퍼레이션이라고 부른다.
3. 구조
4. 적용 결과
l Template Method는 코드 재사용에 있어서 근간이 되는 기법이다. 특히, 클래스 라이브러리와 프레임워크에서 공통적인 행위를 뽑아내는 수단이 된다.
l Template Method는 때때로 “The Hollywood Principle”이라고 불리는 전도된 제어 구조(inverted control structure)를 유도한다. 이는, 부모 클래스가 하위 클래스의 오퍼레이션을 호출하는 형태로만 수행되는 것을 의미한다.
5. 관련 패턴
l Factory Method는 종종 Template Method에 의해 호출된다.
l Template Method는 알고리즘의 일부분이 다양한 형태를 띄도록 하기 위해 사용하는데 반해, Strategy 패턴은 전체 알고리즘을 다양하게 하는 것을 위임하는데 사용한다.
6. 참고 문헌
l Design Patterns, GoF