요약
- 객체의 행위(메소드)를 클래스로 만들어 캡슐화 하는 패턴
- 핵심은 객체(invoker - receiver) 사이의 의존성 제거
특징

- 요청을 객체의 형태로 캡슐화하여 사용자가 보낸 요청을 나중에 이용할 수 있도록 매서드 이름, 매개변수 등 요청에 필요한 정보를 저장 또는 로깅, 취소할 수 있게 하는 패턴
구성
① 수신자 (Receiver) : 행동을 하는 객체 : 제어 장치 (여러 할 수 있는 행동이 담겨 있을거임) -> 장치
② 커맨드 (Command) : 수신자(Receiver)의 정보 + 행동이 들어 있는 객체 -> 버튼의 행위
③ 발동자 (Invoker) : 커맨드를 저장함 -> 버튼이 어떠한 행동을 할지 설정해 주는 행위
④ 클라이언트 (Client) : 커맨드 객체를 생성, 발동자(Invoker)를 통해 수신자(Receiver)에게 할 행동을 전달함 -> 리모컨
장점
- 기존 Code를 수정하지 않고, 새 명령을 쉽게 추가 가능
- 명령의 호출자와 수신자 사이의 의존성 제거
단점
참고 사이트
커맨드 패턴 - 위키백과, 우리 모두의 백과사전