커맨드 패턴: 두 판 사이의 차이

IT위키
(새 문서: * 상위 문서: 소프트웨어 디자인 패턴 == 파이썬 코드 예제 == <syntaxhighlight lang="python3" line="1"> from abc import ABCMeta, abstractmeth...)
 
편집 요약 없음
 
39번째 줄: 39번째 줄:
     agent.placeOrder(sellStock)
     agent.placeOrder(sellStock)
</syntaxhighlight>
</syntaxhighlight>
== 참고 문헌 ==
* [https://q.fran.kr/%EB%AC%B8%EC%A0%9C/14464 국가공무원 7급 소프트웨어 공학 2020년 기출문제]
[[분류:소프트웨어 공학]]
[[분류:소프트웨어 공학]]

2021년 10월 20일 (수) 17:23 기준 최신판

파이썬 코드 예제[편집 | 원본 편집]

  from abc import ABCMeta, abstractmethod
  class Order(metaclass=ABCMeta):
     @abstractmethod
     def execute(self):
         pass
  class BuyStockOrder(Order):
     def __init__(self, stock):
         self.stock = stock
     def execute(self):
         self.stock.buy()
  class SellStockOrder(Order):
     def __init__(self, stock):
         self.stock = stock
     def execute(self):
         self.stock.sell()
  class StockTrade:
     def buy(self):
         print(You will buy stocks)
     def sell(self):
         print(You will sell stocks)
  class Agent:
     def __init__(self):
         self.__orderQueue = []
     def placeOrder(self, order):
         self.__orderQueue.append(order)
         order.execute()
  if __name__ == __main__:
     #Client
     stock = StockTrade()
     buyStock = BuyStockOrder(stock)
     sellStock = SellStockOrder(stock)
     #Invoker
     agent = Agent()
     agent.placeOrder(buyStock)
     agent.placeOrder(sellStock)

참고 문헌[편집 | 원본 편집]