객체에서 다른 객체로 request를 보낼 때, request 내용이 복잡해 지거나 확장이 필요하면, 프로토콜을 따로 설계하게된다. 그렇게 해야 보다 유연해지기 때문이다. request에 대한 프로토콜을 별도의 Command 오브젝트로 구현하는 방법이 바로 Command Pattern이다. request를 보내는 Invoker 객체는 이를 받는 Reciever 객체에 대한 정보가 없어도 되기 때문에(Command 객체가 갖고있다), 두 객체간 coupling을 제거할 수 있다. Command Pattern의 실제…