본문 바로가기
SW 공부/Design Patterns

[디자인패턴] Template method pattern (템플릿 메소드 패턴)

by 꼬냉상 2022. 8. 28.

Purpose of Template method Pattern (템플릿 메소드 패턴의 목적)

- Identifies the framework of an algorithm, allowing implementing classes to define the actual behavior.

- 실제 동작을 정의하기 위해 클래스를 구현할 수 있도록 알고리즘의 프레임워크 구성하는 데 사용

 

Design Principle (디자인원칙)

- Hollywood Principle : Don't call us, we'll call you 

- High level component --call--> low-level component

→ "프레임워크(framework)에서 흔히 적용되는 설계원칙으로, 저수준(low-level) 구성 요소가 프레임워크의 흐름(flow)에 여할 수 있으면서도하위 구성요소가 상위 구성요소를 직접 호출하는 "의존성 부패"를 막게 해주는 할리우드 Hollywood Principle)이 있다."

 

Template method Pattern (템플릿 메소드 패턴)

- Define the skeleton of an algorithm in an operation, deferring some steps to subclasses.

- Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm’s structure. 

- 골격을 정의하고, abstract로 선언해서 하위 클래스에서 작업하도록 함

 

Hook Method

- A hook is a method that is declared in the abstract class, but only given an empty or default implementation.

- subclass에서 "hook"을 제공해서, retun type( true/false)에 따라 hook을 무시할 수 도 있음

 

Related Patterns

- Template Method uses inheritance to vary part of an algorithm.  : 세부 step만 바꾸고

- Strategy uses delegation to vary the entire algorithm. : 알고리즘 전체 variation을 바꿈 

- Factory Method is a specialization of Template Method : Template Method의 특화된 형태가 Factory Method

 

Quiz) Template Method 패턴은 class scope의 패턴인가? 아니면 object scope의 패턴인가?

- Class scope의 패턴

 

Quiz) Template Method 패턴과 Strategy 패턴 모두 알고리즘의 다양성을 높이는데 활용될 수 있는데, 어떤 차이가 있는가?

- Template Method 패턴은 inheritance(상속)을 사용하여 알고리즘의 일부를 변경하고, Strategy 패턴은 delegation (위임)을 사용하여 전체 알고리즘을 변경합니다. 알고리즘 변형의 범위가 다릅니다.

 

Quiz) 다음 각 문장이 옳은지 O/X 로 답하시오

- (O) 템플릿 메쏘드(Template Method) 패턴은 OCP를 적용한 예이다.

 

본 글은 개인의 S/W 구조설계 역량 강화를 위한 학습 목적으로 정리된 내용입니다.
일부 타/개인 단체에 저작권이 있는 자료를 포함하고 있으므로, 절대 영리 목적으로 사용하실 수 없습니다.

 

반응형

댓글