-
[디자인패턴] 템플릿패턴(Template Pattern)Computer Basis/디자인패턴 및 설계이론 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
728x90'Computer Basis > 디자인패턴 및 설계이론' 카테고리의 다른 글
[설계이론] Project Structure - 프로젝트 구성을 어떻게 설계해야 할까? (패키지 분리기준) (0) 2022.03.27 [디자인패턴] 싱글톤패턴을 쓰는 이유와 주의할 점 (0) 2022.03.15 [디자인패턴] 상속보다는 컴포지션을 사용하자!!! (0) 2022.02.17 [설계이론] 마이크로서비스 아키텍처(MSA)는 언제 고려해야하는가? (0) 2022.02.03 [설계이론] Over-fetching & Under-fetching (0) 2021.12.01