Study/Design Pattern

템플릿 메서드 패턴(Template Method Pattern)

해달 2022. 2. 3. 21:37

개요

템플릿 메서드 패턴(Template Method Pattern)은 알고리즘의 뼈대를 정의하고 각 단계에서 수행할 구체적 처리는 서브클래스에서 하는 패턴이다. 구조는 아래와 같다.

 

템플릿 메서드 패턴의 구조

 

TemplateMethod()에서 알고리즘의 뼈대를 정의하고 각 단계에서의 연산을 가상 함수로 만들어, 서브클래스에서 오버라이딩한다. 이 중 기본 행동을 제공하는 가상 함수를 훅 연산(Hook Operation)이라고 한다.

 

자주 사용되는 패턴이다. 특히 게임 엔진 사용할 때 Unity의 이벤트 함수 순서라던가 Unreal의 Actor 라이프 사이클 등이 그것이다. Unity나 Unreal은 이미 함수를 호출할 순서를 정의해놓고 우리가 사용할 때는 그것을 오버라이딩 하여 사용한다.

 

using UnityEngine;


public class SomeComponent : MonoBehaviour
{
    public float RotationSpeed = 8.0f;


    // Update()는 MonoBehaviour에서 상속 받은 함수로 Unity 내부에서 호출된다.
    void Update()
    {
        transform.Rotate(0, 0, RotationSpeed * Time.deltaTime);
    }
}

Unity에서 컴포넌트 구현할 때 Update() / Start() / Awake() 등이 템플릿 메서드에 사용되는 가상 함수다.

참고자료


'Study > Design Pattern' 카테고리의 다른 글

싱글톤 패턴(Singleton Pattern)  (0) 2022.07.17