[소프트웨어 디자인 패턴] 10. Template Method Pattern

Template Method Pattern
- 알고리즘 골격을 정의하고 알고리즘의 특정 단계를 서브 클래스에서 구현하거나 재정의한다.
- 후크(hook)는 추상 클래스에서 아무 기능도 없이 선언되어 서브 클래스에서 필요시 오버라이드하는 함수이다.
- 클라이언트는 어떤 알고리즘이 수행되는지 고려하지 않는다.

적용 방법
- 기능을 수행하는 클래스를 캡슐화한 추상 클래스를 정의한다.
- 알고리즘을 수행하는 템플릿 메소드를 정의한다.
- 알고리즘의 특정 단계를 추상 메소드로 정의한다.
- 알고리즘의 특정 단계를 구현하는 클래스를 추상 클래스를 상속받아 정의한다.
- 클라이언트는 템플릿 메소드를 통해 알고리즘을 이용한다.