6장. Command Pattern
답글 (1)
Command 패턴 클래스 역할 및 기능 - Prof. Jong Min Lee이(가) 9일 전에 추가함
Command 패턴 클래스 역할 및 기능¶
Command 패턴은 요청을 객체로 캡슐화하여 실행 요청을 다양하게 처리할 수 있도록 하는 행동(Behavioral) 디자인 패턴입니다. 주요 클래스 역할은 다음과 같습니다:
클래스 역할과 기능¶
| 클래스 역할 | 기능 설명 |
|---|---|
| Command | 명령을 정의하는 인터페이스 또는 추상 클래스. execute() 메서드를 선언하여 ConcreteCommand가 이를 구현하도록 함. |
| ConcreteCommand | 실제 명령을 구현하는 클래스. 실제 작업을 수행하는 객체를 호출하여 인터페이스에 선언된 오퍼레이션을 구현함. (또는 execute() 메서드에서 Receiver의 작업을 호출함) Receiver 객체를 참조함. |
| Receiver | 명령이 수행될 대상 객체. 실제 비즈니스 로직을 포함하며, ConcreteCommand가 호출하는 메서드를 제공함. |
| Invoker | 명령을 요청하는 객체. Command 객체를 저장하고 execute()를 호출하여 명령을 실행함. |
| Client | Command, Receiver, Invoker를 생성하고 연결하는 역할. 어떤 명령을 수행할지 결정하고 Invoker에 전달함. |
예시 시나리오¶
리모컨으로 전등을 켜는 상황을 예로 들면:
Command: 리모컨 버튼이 눌렸을 때 실행할 명령의 인터페이스ConcreteCommand: 전등을 켜는 명령을 구현Receiver: 전등 객체, 실제로 켜는 기능을 수행Invoker: 리모컨, 버튼을 눌러 명령을 실행Client: 리모컨에 전등 켜기 명령을 설정하는 사용자
활용 예¶
- 실행 취소(Undo) 기능
- 작업 큐
- 트랜잭션 처리
- 매크로 명령 구성