Computer Basis/디자인패턴 및 설계이론
[디자인패턴] 템플릿패턴(Template Pattern)
DevPing9_
2022. 1. 26. 20:28
# Template Pattern
Template Method, Hook Method 를 활용하여 전체적인 흐름을 정해놓는 디자인 패턴
추상클래스로 작성하게되면 new를 통해 인스턴스화 시킬 수 없고, 상속만 가능하게 하여 직접 구현하여 쓰도록 강제할 수 있다.
# 예시코드
public abstract class Car {
//overrding 가능
public void turnOn(){
System.out.println("시동을 켠다");
};
//하위 클래스에 delegate (overriding 필수)
public abstract void drive();
//overrding 가능
public void turnOff(){
System.out.println("시동을 끈다.");
}
//HookMethod (필요하다면 재정의해서 사용할 수 있음, 재정의하지 않으면 그냥 넘어가는 메서드들)
public void beforeTurnOn(){};
public void afterTurnOn(){};
public void beforeTurnOff(){};
public void afterTurnOff(){};
// 템플릿 메서드 (overriding 불가)
public final void driving(){
beforeTurnOn();
turnOn();
afterTurnOn();
drive();
beforeTurnOff();
turnOff();
afterTurnOff();
}
}
# Reference
추상클래스와 템플릿패턴
추상클래스는 abstract 키워드를 사용해 선언된 클래스이다. 일반적으로 추상메서드를 포함하는 클래스를 의미하지만, 포함하지 않더라도 abstract 키워드를 사용한 클래스라면 추상클래스이다. 해
velog.io
728x90