어떤 명령의 호출자(invoker)와 수신자(receiver)를 분리하여 커맨드라는 별도 객체를 만들어서 통신하는 것, 여러 종류의 커맨드 클래스를 만들어서 다양한 명령을 전달하는 패턴이다. 이렇게 하게되면 invoker와 receiver의 코드는 수정되지 않는다.
Java에서 Thread 관련 ExecutorService가 이런 것이다!