python设计模式之:策略模式
策略模式(Strategy Pattern)是一种对象行为型模式,其定义如下:
定义一系列算法,将每个算法封装起来,并使它们可以互换。策略模式使得算法可以独立于使用它的客户端而变化。
在策略模式中,定义了一组算法,每个算法都完成了特定的功能,客户端根据需要选择一个算法并使用。策略模式可以很好地实现算法的复用和替换,同时可以避免大量的if-else语句。
下面是Python中策略模式的实现示例:
# 定义一个策略接口 class Strategy: def execute(self, data): pass # 定义具体的策略类 class ConcreteStrategyA(Strategy): def execute(self, data): print("使用策略A处理数据:", data) class ConcreteStrategyB(Strategy): def execute(self, data): print("使用策略B处理数据:", data) # 定义上下文类 class Context: def __init__(self, strategy): self._strategy = strategy def set_strategy(self, strategy): self._strategy = strategy def execute_strategy(self, data): self._strategy.execute(data) # 使用示例 context = Context(ConcreteStrategyA()) context.execute_strategy("data1") context.set_strategy(ConcreteStrategyB()) context.execute_strategy("data2")
在上面的示例中,定义了一个策略接口Strategy,具体的策略类ConcreteStrategyA和ConcreteStrategyB分别实现了这个接口。上下文类Context持有一个策略对象,并且提供了设置策略和执行策略的方法。在使用的时候,先创建一个上下文对象并指定一个初始的策略对象,然后根据需要调用set_strategy方法更换策略对象,最后调用execute_strategy方法执行策略。
相关文章