Python 디자인 패턴-전략

전략 패턴은 행동 패턴의 한 유형입니다. 전략 패턴의 주요 목표는 클라이언트가 지정된 작업을 완료하기 위해 다른 알고리즘 또는 절차 중에서 선택할 수 있도록하는 것입니다. 언급 된 작업을 복잡하게하지 않고 다른 알고리즘을 교체 할 수 있습니다.

이 패턴은 외부 리소스에 액세스 할 때 유연성을 향상시키는 데 사용할 수 있습니다.

전략 패턴을 구현하는 방법은 무엇입니까?

아래에 표시된 프로그램은 전략 패턴을 구현하는 데 도움이됩니다.

import types

class StrategyExample:
   def __init__(self, func = None):
      self.name = 'Strategy Example 0'
      if func is not None:
         self.execute = types.MethodType(func, self)

   def execute(self):
      print(self.name)

def execute_replacement1(self): 
   print(self.name + 'from execute 1')

def execute_replacement2(self):
   print(self.name + 'from execute 2')

if __name__ == '__main__':
   strat0 = StrategyExample()
   strat1 = StrategyExample(execute_replacement1)
   strat1.name = 'Strategy Example 1'
   strat2 = StrategyExample(execute_replacement2)
   strat2.name = 'Strategy Example 2'
   strat0.execute()
   strat1.execute()
   strat2.execute()

산출

위의 프로그램은 다음과 같은 출력을 생성합니다-

설명

출력을 실행하는 함수의 전략 목록을 제공합니다. 이 행동 패턴의 주요 초점은 행동입니다.