Concept/Design Pattern
[Design Pattern] Command Pattern
eee_269
2021. 5. 30. 22:14
728x90
반응형
커맨드 패턴
- 요청 내역을 객체로 캡슐화하여 클라이언트를 서로 다른 요청 내역에 따라 매개변수화 할 수 있다.
- 요청을 큐에 저장하거나 로그로 기록할 수도 있고 작업 취소 기능을 지원할 수도 있다.
- 명령을 내리는 클래스는 실제 액션이 어떻게 통하는지 몰라도 되게 하는 것
- Invoker
- execute() 메소드 호출해서 커맨드 객체에게 특정 작업을 수행해 달라는 요구를 하게 된다.
- Receiver
- 요구사항을 수행하기 위해 어떤 일을 처리해야 하는 지 알고 있는 객체
- 메타 커맨드 패턴
- 명령들로 이루어진 매크로를 만들어서 여러개의 명령을 한 번에 실행
- 매크로
- command의 배열을 가진 또 다른 ConcreteCommand를 정의하여 invoker에 세팅
- execute()에서 반복문을 통해 들고 있는 모든 command들의 execute()를 호출한다.
- 실행 취소 기능은 반복문을 통해 들고 있는 모든 command들의 undo()를 호출한다.
728x90
반응형