개요
템플릿 메서드 패턴(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 |
---|