템플릿 메서드 패턴(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시간 잠을 잡니다.");
}
}
템플릿 메서드 패턴은 공통 로직을 상위 클래스에 모아 중복 코드를 줄일 수 있으며, 코드의 재사용성을 높일 수 있다는 장점이 있습니다. 하지만, 하위 클래스를 개발할 때 상위 클래스의 내용을 알기 전까지 어떠한 방식으로 동작할지 예측하기 어렵고, 상위 클래스 수정이 발생하는 경우 모든 하위 클래스를 변경해야 하는 단점이 존재합니다.
'Spring & Backend' 카테고리의 다른 글
| OSI 7계층에 대해서 설명해주세요 (3) | 2025.08.18 |
|---|---|
| 인덱스 알고리즘 (6) | 2025.08.16 |
| 자바스크립트의 메모리 관리에 대해서 아는대로 설명해주세요. (2) | 2025.08.15 |
| 논리 삭제와 물리 삭제의 차이점은 무엇인가요? (2) | 2025.08.14 |
| 자바스크립트에서 생성자 함수가 무엇인지, class 문법은 왜 도입되었는지 설명해주세요. (8) | 2025.08.14 |
