- Python 设计模式教程
- Python 设计模式 - 首页
- 简介
- Python 设计模式 - 要点
- Model View Controller(MVC)模式
- Python 设计模式 - 单例
- Python 设计模式 - 工厂方法
- Python 设计模式 - 建造者
- Python 设计模式 - 原型
- Python 设计模式 - 外观
- Python 设计模式 - 命令
- Python 设计模式 - 适配器
- Python 设计模式 - 装饰器
- Python 设计模式 - 代理
- 职责链模式
- Python 设计模式 - 观察者
- Python 设计模式 - 状态
- Python 设计模式 - 策略
- Python 设计模式 - 模板方法
- Python 设计模式 - 享元模式
- 抽象工厂
- 面向对象编程
- 面向对象概念实现
- Python 设计模式 - 迭代器
- 字典
- 链表数据结构
- Python 设计模式 - 集合
- Python 设计模式 - 队列
- 字符串和序列化
- Python 并发编程
- Python 设计模式 - 反模式
- 异常处理
- Python 设计模式资源
- 快速指南
- Python 设计模式 - 资源
- 讨论
Python 设计模式 - 策略
策略模式是一种行为模式。策略模式的主要目标是让客户端能够从不同的算法或程序中进行选择,以完成指定的任务。可以在没有复杂性的情况下更换不同的算法,以完成指定的任务。
当需要访问外部资源时,可以使用此模式来提高灵活性。
如何实现策略模式?
下面展示的程序有助于实现策略模式。
import types class StrategyExample: def __init__(self, func = None): self.name = 'Strategy Example 0' if func is not None: self.execute = types.MethodType(func, self) def execute(self): print(self.name) def execute_replacement1(self): print(self.name + 'from execute 1') def execute_replacement2(self): print(self.name + 'from execute 2') if __name__ == '__main__': strat0 = StrategyExample() strat1 = StrategyExample(execute_replacement1) strat1.name = 'Strategy Example 1' strat2 = StrategyExample(execute_replacement2) strat2.name = 'Strategy Example 2' strat0.execute() strat1.execute() strat2.execute()
输出
上述程序会生成以下输出−
说明
它从这些函数中提供策略列表,这些函数执行该输出。此行为模式的主要重点是行为。
广告