템플릿 메서드 패턴은 상위 클래스를 만들어 하위 클래스에 구현하는 기법이다.
1. 정의
템플릿 메서드 패턴(Template Method Pattern)은 행동 패턴(Behavioral Pattern) 중 하나로, 알고리즘의 구조를 정의하고, 세부 구현은 서브클래스에 위임하는 디자인 패턴이다. 이 패턴은 알고리즘의 일부분은 상위 클래스에서 정의하고, 알고리즘의 변경 가능하고 구체적인 부분은 하위 클래스에서 구현하도록 하여 재사용성과 확장성을 높인다.
2. 예제 코드
public interface Teachable {
public abstract void 수업하기();
}
public abstract class Teacher implements Teachable {
@Override
public void 수업하기() {
입장하기();
출석부르기();
강의하기();
퇴장하기();
}
protected void 입장하기() {
System.out.println("입장하기");
}
protected void 출석부르기() {
System.out.println("출석부르기");
}
protected abstract void 강의하기();
protected void 퇴장하기() {
System.out.println("퇴장하기");
}
}
public class JavaTeacher extends Teacher {
@Override
protected void 강의하기() {
System.out.println("자바강의하기");
}
}
public class PythonTeacher extends Teacher {
@Override
protected void 강의하기() {
System.out.println("파이썬강의하기");
}
}
3. 정리
Teachable
인터페이스수업하기()
메서드를 정의한 인터페이스이다.
Teacher
클래스Teachable
의수업하기()
메서드를 구현하고 고정된 흐름을 설정한 템플릿 클래스이다.입장하기()
,출석부르기()
,퇴장하기()
메서드는 변경되지 않는 부분으로Teacher
에서 구현했다.강의하기()
메서드는 하위에서 구현하도록abstract
로 선언했다.
JavaTeacher, PythonTeacher
클래스Teacher
의 하위 클래스로강의하기()
내용을 구현했다.
Share article