클래스가 일을 실행할 때에는 자신의 클래스나 다른 클래스의 메소드를 초루합니다. 메소드를 호출한 결과는 오브젝트(객체)의 상태에 반영하지만, 일의 이력은 어디에도 남지 않습니다.
이때 '이 일을 실행하시오.'라는 '명령'을 표현하는 클래스가 있으면 편리합니다. 실행하고 싶은 일을 '메소드를 호출'하는 동적인 처리로 표현하는 것이 아니라, 명령을 나타내는 클래스의 인스턴스로 하나의 '물건'처럼 표현할 수 있기 때문입니다. 이력을 관리하고 싶을 때에는 그 인스턴스의 집합을 관리하면 됩니다. 명령의 집합을 저장해 두면 같은 명령을 재실행할 수도 있고, 또는 복수의 명령을 모아서 새로운 명령으로 재이용할 수도 있습니다.
디자인 패턴에서는 이와 같은 '명령'을
Command 패턴
Command는 Event라고도 부릅니다. '이벤트 구동 프로그래밍'에서 사용되는 '이벤트'와 같은 의미입니다. 마우스를 클릭하거나 키를 누르는 등의 이벤트가 발생할 때, 그 사건을 일단 인스턴스라는 '물건'으로 해두고, 발생 순서에 따라 행렬로 나열합니다. 그리고 나열해 놓은 이벤트를 순서대로 처리해 갑니다. GUI 와 관련된 프로그래밍에서는 '이벤트'가 자주 등장합니다.