와챠의 우당탕탕 코딩 일기장

[JAVA 디자인 패턴] - 3, Template Method 패턴 본문

코딩 일기장/JAVA 디자인 패턴

[JAVA 디자인 패턴] - 3, Template Method 패턴

minWachya 2020. 9. 22. 22:04
반응형

Template Method Pattern

 

Template Method 패턴은 하위 클래스에서 구체적으로 처리하도록 하는 패턴이다.

template(견본)의 뜻처럼 부모 클래스에서 큰 형식을 지정해주면,

자식 클래스가 그 큰 형식에 맞추어 구체적인 일을 하도록 하는 패턴이다.

 

이력서처럼 형식이 정해져 있는 것에 내가 그 칸을 하나하나 구체적으로 채우는 느낌이다.

 

 

예제로는 레시피 형식에 맞추어

쿠키 레시피와 파이 레시피를 작성하는 코드를 짜보았다.

 

Template Method 패턴의 클래스 다이어그램

 

  • AbstractRecipe = 레시피의 큰 흐름을 구성하는 Template Method를 가진 추상 클래스
    • printRecipe 메서드 = ready, bake, decoration를 이용해 레시피의 큰 흐름을 구성(Template Method)
      • 자식이 @Override 하는 것을 막기 위한(큰 흐름을 망치는 것을 막기 위한) final
  • Cookie = 레시피의 큰 틀을 이용해 초코 쿠키 레시피를 작성하는 클래스
  • Pie = 레시피의 큰 틀을 이용해 사과 파이 레시피를 작성하는 클래스

 

 

실행 결과

Cookie 클래스와 Pie 클래스의 ready, bake, decoration은 서로 다른 처리가 일어나는데

Template Method인 printRecipe메소드 덕에 동일한 흐름대로 실행되는 모습을 볼 수 있다.

 

 

Template Method 패턴의 장점

  • 모두 같은 흐름을 가지도록 로직을 공통화를 할 수 있다.

 

 

 

 

JAVA 언어로 배우는 디자인 패턴 입문(p 70~78) 참고

반응형
Comments