게임 개발 공부/Unity

Command Pattern

CalebHong 2022. 2. 8. 11:33

Command Pattern is a behavioral design pattern taht turns a request int a stand-alone object that contains all information bout the request.

명령 패턴은 요청에 대한 모든 정보를 포함하는 독립 실행형 개체로 요청을 전환하는 행동 디자인 패턴이다.

 

플레이어에 대한 로직을 짤 때 초보적인 발상으로 PlayerController에 마구 때려넣는 식으로 코딩을 하는 경우 많다.

예를 들면 PlayerController에 Move()와 Jump(), Attack() 등등의 함수를 구현해놓고 그 안에서 사용한다.

이런 방식이 잘못된 것은 아니지만 결국 유지,보수에 치명적이며, 협업할 시 코드가 너무 많아져서 코드 분석하기가 매우 어려워진다.

따라서 명령 패턴(Command Pattern)을 통해 코드를 명확하게 분리해줘야 하는데 4가지의 핵심 요소를 통해 구성된다.

 

1. 명령(Command)

 - 수신자에 대해 알고 자신에 저장된 값을 사용하여 수신자에서 함수를 호출하는 개체

 - ex) ActionBase

 

2. 수신자(Receiver)

 - 명령 개체를 통해 호출된 함수을 수행하는 개체

 - ex) PlayerController

 

3. 호출자(Invoker)

 - 명령을 실행하는 방법을 알고 선택적으로 명령 실행에 대한 부기(Bookkeeping)를 수행할 수 있는 개체

 - Stack을 통해 Action을 저장함

 - ex) ActionRecorder

 

4. 클라이언트(Client)

 - 명령 개체에 할당할 수신기 개체와 호출자에게 할당할 명령을 결정하는 개체

 - ex) GameManager