템플릿 메서드 패턴은 공통된 처리를 여러 코드에서 사용하고 싶을 때 사용한다. 만약에 A클래스, B클래스, C클래스의 기능 전후에 시간을 로그로 찍고 싶다면 물론 각 기능마다 로그를 찍어도 되지만, 중복이 많아지고 후에 변경이나 삭제를 해야한다면 몇개를 빼먹는다던지, 일관되지 못한 변경이나 실수가 있게 된다. 추상클래스를 활용 추상클래스는 하나 이상의 추상메소드를 가진 클래스이다. 어떤 공통된 기능은 정의해놓고 각자의 기능은 추상클래스를 오버라이딩할 수 있다. 이 경우 A,B,C가 추상클래스를 상속받고, 추상메소드에 A,B,C의 각자의 핵심기능을 정의해 놓고 템플릿메소드에 공통처리와 추상메소드를 부르는 코드를 넣는다. 그리고 각 기능을 실행할 때 템플릿 메소드를 부르면 공통처리와 각각의 핵심코드를 함께 ..