티스토리 뷰

'요청 자체를 캡슐화하는 것입니다. 이를 통해 요청이 서로 다른 사용자를 매개변수로 만들고, 요청을 대기시키거나 로깅하며, 되돌릴 수 있는 연산을 지원합니다.' 

- 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



댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
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
글 보관함