반응형
1. 정의
1) 요구사항(요청, 명령)을 객체로 캡슐화 시킴.
2) 명령이 객체로 캡슐화 되기 때문에 큐에 넣거나 로그로 남길 수 있고, 작업 취소(undo) 기능 구현 가능
2. 문제
1) 사용하려는 객체(명령)가 많고, API가 서로 다른 경우
예) 홈 리모컨의 경우 차고문, 전등, TV, Stereo, 에어컨 등 사용해야 하는 객체가 너무 많고, 서로 다른 명령들로
구성되어 있음
3. 해결방안
1) 실행과 요청을 분리한다.(decoupling)
예) 리모컨 --> 커맨드 클래스 <-- 업체에서 제공하는 실제 명령어
리모컨은 커맨드 클래스에 대해서만 알고 있으면 됨
4. 사용 예제
1) 홈 오토메이션 리모컨
Client : 커맨드 객체 생성 / 명령 하달을 위해 추상화된 <command interface>를 사용
Invoker : 명령을 받아서, 실행하기 위해 Command 인터페이스 연결(예 : swing 버튼 누르기)
Command : 어떤 receiver를 실행할 지 연결하는 클래스
Receiver : 실제 명령을 수행하는 클래스
반응형
'Programming > Design Pattern' 카테고리의 다른 글
Adapter Pattern (0) | 2019.12.31 |
---|---|
Command Pattern 과제 (0) | 2019.12.31 |
Singleton Pattern (0) | 2019.12.30 |
Factory Pattern (0) | 2019.12.27 |
Decorator Pattern 과제 (0) | 2019.12.27 |