커맨드 패턴(Command Pattern)은 유사한 동작을 하나의 객체로 묶어 실행하는 디자인 패턴이다. 버튼 클래스를 구현한다고 하자. 버튼은 버튼마다 다른 기능이 있다. 저장, 파일 열기, 편집, 적용, 확인 모두 다른 역할을 한다. 그러나 기능에 맞춰 버튼도 여러 클래스를 만들기에는 기능이 너무 많다. 여러 버튼 객체들이 직접 요청을 보내는 대신, 요청을 보내는 인터페이스를 두고, 이 인터페이스가 기능의 요청을 받아 다른 객체로 보낼 수 있다. 구현 커맨드 패턴은 인터페이스 명령 Receiver (수신자) Invoker (호출자) 로 구성된다. Receiver 실제로 작업을 수행하는 객체이다. class Device { public: void On() { ... } void Off() { ... }..