转载请注明出处 https://blog.youkuaiyun.com/nk1212582/article/details/81213028
概念
策略模式:定义了一个算法家族,将多种算法分别封装起来,让它们之间可以相互替换。
特点
策略模式让算法的变化,不会影响到使用算法的客户
结构图
代码实现
class Strategy:
def algorithmInterface(self):
raise NotImplementedError
class ConcreteStrategyA(Strategy):
def algorithmInterface(self):
print("算法A实现")
class ConcreteStrategyB(Strategy):
def algorithmInterface(self):
print("算法B实现")
class Context:
def __init__(self, strategy):
self.m_strategy = strategy
def contextInterface(self):
if self.m_strategy:
self.m_strategy.algorithmInterface()
c = Context(ConcreteStrategyA())
c.contextInterface()
其输出为:
算法A实现