티스토리 뷰
'요청 자체를 캡슐화하는 것입니다. 이를 통해 요청이 서로 다른 사용자를 매개변수로 만들고, 요청을 대기시키거나 로깅하며, 되돌릴 수 있는 연산을 지원합니다.'
- GoF의 디자인 패턴
GoF의 디자인 패턴에 나오는 명령 패턴의 설명입니다. 대강 알아는 듣겠지만 정확히 무슨 말인지 모호합니다. 그래서 저는 명령 패턴을 '함수 호출을 객체로 만드는 방법' 이라고 나름대로 정의했습니다. 즉 명령 패턴은 함수 호출 이라는 동작을 객체로 만들기 때문에 이 동작을 저장하거나 함수의 인자로 사용할 수 있게 만듭니다.
명령 패턴의 사용 예로는 함수 호출을 저장하거나 함수의 인자로 사용할 수 있기 때문에 게임에서의 입력키 변경, undo, 등에 사용될 수 있습니다.
명령 패턴의 구현은 Command 인터페이스를 만드는 것 부터 시작합니다.
1 2 3 4 | public interface Command { void Execute(); } | cs |
그 다음으로 Command를 구현하기만 하면 명령 패턴은 완성됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | public class JumpCommand : Command { public void Execute() { Jump(); } private void Jump() { Debug.Log("Jump"); } } public class FireCommand : Command { public void Execute() { Fire(); } private void Fire() { Debug.Log("Fire"); } } public class SwapWeaponCommand : Command { public void Execute() { SwapWeapon(); } private void SwapWeapon() { Debug.Log("SwapWeapon"); } } | cs |
댓글