行为型设计模式
策略模式定义了一系列算法,并将每个算法封装起来,使它们可以互换使用。这种模式允许算法的变化独立于使用算法的客户。简而言之,策略模式通过定义一系列算法,并将每个算法封装在具有共同接口的类中,来实现算法之间的切换。
下面是一个简单的Python代码示例,展示了策略模式的基本结构:
from abc import ABC, abstractmethod
# 策略接口
class Strategy(ABC):
@abstractmethod
def execute(self, context):
pass
# 具体策略A
class ConcreteStrategyA(Strategy):
def execute(self, context):
return "执行策略A"
# 具体策略B
class ConcreteStrategyB(Strategy):
def execute(self, context):
return "执行策略B"
# 环境类
class Context:
def __init__(self, strategy: Strategy):
self._strategy = strategy
def execute_strategy(self):
return self._strategy.execute(self)
# 客户端代码
if __name__ == "__main__":
context = Context(ConcreteStrategyA())
print(context.execute_strategy()) # 输出:执行策略A
context = Context(ConcreteStrategyB())
print(context.execute_strategy()) # 输出:执行策略B
在这个示例中,Strategy 是策略接口,ConcreteStrategyA 和 ConcreteStrategyB 是具体的策略实现。Context 类使用策略对象来执行策略。客户端代码可以轻松地切换策略,而不需要修改环境类或其他策略类的代码。

浙公网安备 33010602011771号