상세 컨텐츠

본문 제목

[매일메일] 템플릿 메서드 패턴이란 무엇인가요?

본문

템플릿 메서드 패턴이란,

기능의 뼈대와 구현을 분리하는 행위 디자인 패턴이라고 한다.

 

예상하는 거론 부모 클래스에서 상속 받아 자식 클래스 내부에서 직접 구현을 해서 사용하는 거를 말하는 게 아닐까 생각한다.

 

"템플릿 메서드 패턴은 실행 단계의 절차를 결정하는 상위 클래스와 실행 단계를 구현하는 하위 클래스로 구성됩니다." -> 맞는 것 같다.

 

public abstract class Student {
  
    public abstract void study();
    public abstract void watchYoutube();
    public abstract void sleep();

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

class BackendStuduent 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시간 잠을 잡니다.");   
    }
}

공통 로직을 상위 클래스에 모아 중복 코드를 줄일 수 있음.

코드 재사용성을 높일 수 있는 장점이 있음

 

상위 클래스 수정이 발생하는 경우 모든 하위 클래스를 변경해야 하는 단점이 존재함.

관련글 더보기