템플릿 메서드 패턴

템플릿 메서드 패턴은 알고리즘의 전체 흐름은 상위 클래스에 고정하고, 세부 단계의 구현만 하위 클래스에 위임하는 행위 디자인 패턴입니다.

핵심 개념

Java 예시

public abstract class Student {

    public abstract void study();
    public abstract void watchYoutube();
    public abstract void sleep();

    // 템플릿 메서드
    final public void doDailyRoutine() {
        study();
        watchYoutube();
        sleep();
    }
}

class BackendStudent extends Student {

    @Override
    public void study() {
        System.out.println("JPA 강의를 수강합니다.");
    }

    @Override
    public void watchYoutube() {
        System.out.println("개발 유튜브를 시청합니다.");
    }

    @Override
    public void sleep() {
        System.out.println("7시간 잠을 잡니다.");
    }
}

장점

주의사항

전략 패턴과의 비교

구분템플릿 메서드 패턴전략 패턴
관계상속조합
흐름 결정상위 클래스가 고정Context가 전략 객체에 위임
변경 시점컴파일 타임 (하위 클래스)런타임 (전략 교체)

핵심 정리

템플릿 메서드 패턴은 변하지 않는 알고리즘의 뼈대는 상위 클래스에 두고, 변하는 세부 구현만 하위 클래스에 맡기는 패턴입니다.

→ 템플릿 메서드 패턴이란 무엇인가요?

CSLOG에서 보기