728x90
728x90
# 관련 포스팅
- 추상 클래스 : https://young0105.tistory.com/46
템플릿 메서드 패턴 (Template Method pattern)
- 추상 메서드 or 구현된 메서드를 활용하여, 코드의 흐름(시나리오)를 정의하는 디자인 패턴
- '행위' 디자인 패턴
- final로 선언함
→ 자식 클래스가 해당 메서드에 대해 재정의할 수 없게 함 (메서드 오버라이드 금지)
- 프레임워크에서 자주 사용됨
- 부모 클래스에서 선언되어, 전체적인 흐름을 정의함
→ 각 자식 클래스마다 다르게 구현되어야 하는 부분은 추상 메서드로 선언함
→ 자식 클래스는 추상 메서드를 구체화함
- 전체적인 구조는 바꾸지 않으면서, 특정 단계에서 수행하는 내역을 바꿈
// 부모 클래스 파일 //
// 메서드1 선언
// 메서드2 선언
...
// 템플릿 메서드
final public void 메서드명() {
// 실행의 순서에 따라 메서드들을 나열함
메서드1();
메서드2();
...
}
// 예시 //
public abstract class Car {
public abstract void drive();
public abstract void stop();
private void startCar() {
System.out.println("시동을 켭니다");
}
private void turnOff() {
System.out.println("시동을 끕니다");
}
public abstract void wiper();
// 후크 메서드
public void washCar() {}
// 템플릿 메서드
final public void run() {
startCar();
drive();
wiper();
stop();
turnOff();
washCar();
}
}
# 후크 메서드
pulic void 메서드명() {
}
- 아무 것도 구현하지 않는 일반 메서드
- 템플릿 메서드(실행의 흐름) 안에 넣어두고, 필요하면 재정의하여 사용할 수 있도록 함
320x100
반응형
'Java > Design Pattern' 카테고리의 다른 글
[Java] 전략 패턴 (Strategy pattern) (0) | 2023.04.11 |
---|---|
[Java] 싱글톤 패턴 (Singleton pattern) (0) | 2023.04.10 |
[Java] 어댑터 패턴 (Adapter pattern) (0) | 2023.03.27 |
[Java] 디자인 패턴 정리 (0) | 2023.03.27 |
[Java] 빌더 패턴 (Builder pattern) (0) | 2023.03.23 |