공통적으로 적용되는 클래스의 사용방법을 템플릿화해서 추상클래스(abstract class)를 이용해서 정해둔다. 이때, 사용방법(메소드들 사용 순서 등)은 final 메소드로 만들어서 자식 클래스에서 override해서 엉뚱하게 사용하는 것을 방지한다. 템플릿 메소드 패턴은 알고리즘의 골격을 정의한다. 알고리즘의 일부 단계를 자식클래스에서 구현할 수 있으며, 알고리즘의 구조는 그대로 유지하면서 특정 단계만 자식 클래스에서 재정의해서 사용 위와 같이 추상 클래스에서 run() 메소드를 final로 만들어서 사용방법을 알려주고, 개별 메소드나 추사 메소드는 자식 클래스에서 정의하여 사용.