와챠의 우당탕탕 코딩 일기장
[JAVA 디자인 패턴] - 3, Template Method 패턴 본문
반응형
Template Method Pattern
Template Method 패턴은 하위 클래스에서 구체적으로 처리하도록 하는 패턴이다.
template(견본)의 뜻처럼 부모 클래스에서 큰 형식을 지정해주면,
자식 클래스가 그 큰 형식에 맞추어 구체적인 일을 하도록 하는 패턴이다.
이력서처럼 형식이 정해져 있는 것에 내가 그 칸을 하나하나 구체적으로 채우는 느낌이다.
예제로는 레시피 형식에 맞추어
쿠키 레시피와 파이 레시피를 작성하는 코드를 짜보았다.
- AbstractRecipe = 레시피의 큰 흐름을 구성하는 Template Method를 가진 추상 클래스
- printRecipe 메서드 = ready, bake, decoration를 이용해 레시피의 큰 흐름을 구성(Template Method)
- 자식이 @Override 하는 것을 막기 위한(큰 흐름을 망치는 것을 막기 위한) final
- printRecipe 메서드 = ready, bake, decoration를 이용해 레시피의 큰 흐름을 구성(Template Method)
- Cookie = 레시피의 큰 틀을 이용해 초코 쿠키 레시피를 작성하는 클래스
- Pie = 레시피의 큰 틀을 이용해 사과 파이 레시피를 작성하는 클래스
Cookie 클래스와 Pie 클래스의 ready, bake, decoration은 서로 다른 처리가 일어나는데
Template Method인 printRecipe메소드 덕에 동일한 흐름대로 실행되는 모습을 볼 수 있다.
Template Method 패턴의 장점
-
모두 같은 흐름을 가지도록 로직을 공통화를 할 수 있다.
JAVA 언어로 배우는 디자인 패턴 입문(p 70~78) 참고
반응형
'코딩 일기장 > JAVA 디자인 패턴' 카테고리의 다른 글
[JAVA 디자인 패턴] - 6, Strategy 패턴 (0) | 2020.11.09 |
---|---|
[JAVA 디자인 패턴] - 5, Singleton 패턴 (0) | 2020.10.02 |
[JAVA 디자인 패턴] - 4, Factory Method 패턴 (0) | 2020.10.02 |
[JAVA 디자인 패턴] - 2, Adapter 패턴 (0) | 2020.09.16 |
[JAVA 디자인 패턴] - 1, Iterator 패턴 (0) | 2020.09.13 |
Comments