设计模式(Python语言)----策略模式(python常用的设计模式)

网友投稿 423 2022-08-23


设计模式(Python语言)----策略模式(python常用的设计模式)

更多信息请参考 【设计模式】

策略模式内容

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

策略模式中的角色

抽象策略(Strategy)具体策略(Concrete Strategy)上下文

策略模式的优点

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

策略模式的缺点

客户必须了解不同策略的特点

策略模式的实例

代码如下:

from abc import ABCMeta,abstractmethodclass Strategy(metaclass=ABCMeta): @abstractmethod def execute(self,data): passclass 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()

执行结果如下:

用较快的策略处理[...]用较慢的方式处理[...]


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot2.6.4集成swagger3.0遇到的坑及解决方法
下一篇:二十四种场景全方位解读Python装饰器的用法(python装饰器的应用场景)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~