ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## 策略设计模式 ### 构成 1. 抽象策略; 2. 具体策略,即实现; 3. 上下文——策略调度。 #### 优点 定义了一系列可重用的算法和行为; 消除了一些条件语句; 可以提供相同行为的不同实现。 #### 缺点 客户必须了解不同的策略以选择使用。 ### 示例代码 ``` from abc import ABCMeta,abstractmethod class Strategy(metaclass=ABCMeta): @abstractmethod def execute(self, data): pass class FastStrategy(Strategy): def execute(self, data): print("用较快的策略处理%s" % data) class SlowStrategy(Strategy): def execute(self, data): print("用较慢的策略处理%s" % data) # 上下文类,负责策略的调度 class Context: def __init__(self, strategy, data): self.data = data self.strategy = strategy def set_strategy(self, strategy): self.strategy = strategy def do_strategy(self): self.strategy.execute(self.data) data = "L:" s1 = FastStrategy() s2 = SlowStrategy() context = Context(s1, data) context.do_strategy() """切换策略""" context.set_strategy(s2) context.do_strategy() ```