답 : 4번



커맨드 객체
  • BuyStockOrderSellStockOrder 클래스는 Order 추상 클래스를 구현한 구체적인 커맨드 객체입니다. 각각 주식 매수와 매도 명령을 나타냅니다. 이들 클래스는 execute 메서드를 구현하여, 실제로 주식 매수와 매도 동작을 수행합니다(StockTrade 클래스의 buysell 메서드 호출).
리시버 객체
  • StockTrade 클래스는 리시버(Receiver) 객체로, 실제 주식 매수와 매도 동작을 수행하는 메서드(buysell)를 가지고 있습니다.
인보커 객체
  • Agent 클래스는 인보커(Invoker) 역할을 하며, placeOrder 메서드를 통해 주문(커맨드) 객체를 받아 큐에 추가하고, 큐에 추가된 각 주문의 execute 메서드를 호출하여 실제 작업을 실행합니다.

이 방식은 커맨드 패턴의 핵심 요소인 커맨드 객체의 생성, 리시버 객체의 동작 호출, 그리고 인보커 객체를 통한 작업 요청의 분리를 잘 보여줍니다. 커맨드 패턴을 사용함으로써, 호출자와 수행자 사이의 결합도를 낮출 수 있으며, 요청을 객체의 형태로 캡슐화하여 요청의 로깅, 취소, 재실행 등 다양한 추가 작업을 수행할 수 있는 유연성을 제공합니다.