栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

设计模式(Python语言)----策略模式

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

设计模式(Python语言)----策略模式

更多信息请参考 【设计模式】 策略模式内容

定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换,本模式使得算法可独立于使用它的客户而发生变化

策略模式中的角色

抽象策略(Strategy)具体策略(Concrete Strategy)上下文 策略模式的优点

定义了一系列可重用的算法和行为消除了一些条件语句可以提供相同行为的不同表现 策略模式的缺点

客户必须了解不同策略的特点 策略模式的实例

代码如下:

from abc import ABCmeta,abstractmethod

class Strategy(metaclass=ABCmeta):
    @abstractmethod
    def execute(self,data):
        pass

class FastStrategy(Strategy):
    def execute(self,data):
        print(f"用较快的策略处理{data}")

class SlowStrategy(Strategy):
    def execute(self,data):
        print(f"用较慢的方式处理{data}")

class Context:
    def __init__(self,strategy,data):
        self.data=data
        self.strategy=strategy

    def set_strategy(self,strategy):
        self.strategy=strategy

    def do_strategy(self):
        self.strategy.execute(self.data)


if __name__=="__main__":
    data="[...]"
    s1=FastStrategy()
    s2 = SlowStrategy()
    context=Context(s1,data)
    context.do_strategy()
    context = Context(s2, data)
    context.do_strategy()

执行结果如下:

用较快的策略处理[...]
用较慢的方式处理[...]
推荐阅读 设计模式(Python语言)----面向对象设计SOLID原则 设计模式(Python语言)----设计模式分类 设计模式(Python语言)----简单工厂模式 设计模式(Python语言)----工厂方法模式 设计模式(Python语言)----抽象工厂模式 设计模式(Python语言)----建造者模式 设计模式(Python语言)----单例模式 设计模式(Python语言)----适配器模式 设计模式(Python语言)----桥模式 设计模式(Python语言)----组合模式 设计模式(Python语言)----外观模式 设计模式(Python语言)----代理模式 设计模式(Python语言)----责任链模式 设计模式(Python语言)----观察者模式 设计模式(Python语言)----策略模式 设计模式(Python语言)----模板方法模式
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/701097.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号