템플릿 메서드 패턴이란 무엇인가요?
분야: 백엔드
템플릿 메서드 패턴(Template Method Pattern) 은 기능의 뼈대와 구현을 분리하는 행위 디자인 패턴입니다. 템플릿 메서드 패턴은 실행 단계의 절차를 결정하는 상위 클래스와 실행 단계를 구현하는 하위 클래스로 구성됩니다.
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시간 잠을 잡니다.");
}
}
템플릿 메서드 패턴은 공통 로직을 상위 클래스에 모아 중복 코드를 줄일 수 있으며, 코드의 재사용성을 높일 수 있다는 장점이 있습니다. 하지만, 하위 클래스를 개발할 때 상위 클래스의 내용을 알기 전까지 어떠한 방식으로 동작할지 예측하기 어렵고, 상위 클래스 수정이 발생하는 경우 모든 하위 클래스를 변경해야 하는 단점이 존재합니다.