行为型设计模式

策略模式定义了一系列算法,并将每个算法封装起来,使它们可以互换使用。这种模式允许算法的变化独立于使用算法的客户。简而言之,策略模式通过定义一系列算法,并将每个算法封装在具有共同接口的类中,来实现算法之间的切换。
下面是一个简单的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 是策略接口,ConcreteStrategyAConcreteStrategyB 是具体的策略实现。Context 类使用策略对象来执行策略。客户端代码可以轻松地切换策略,而不需要修改环境类或其他策略类的代码。

posted @ 2026-01-05 23:01  曹明阳  阅读(8)  评论(0)    收藏  举报