策略模式属于行为型模式,python常见的设计模式

  策略模式属于行为型模式,python常见的设计模式

  本文主要介绍Python设计模式中的行为策略模式(behavioral StrategyPattern),即策略模式(StrategyPattern),它定义了算法族,将它们分开封装,使它们可以互相替换。这种模式使得算法改变,不会影响使用算法的客户。以下相关资料有一点参考价值,有需要的可以参考一下。

  00-1010一、策略模式二。应用场景三。代码示例

  

目录

  在策略模式中,一系列不同的算法被逐一定义和封装,然后这些算法可以在策略类中互相替换。这意味着当类的实例化对象运行时,类的行为(算法)可以改变。

  优点:

  定义了一系列可重用的算法和行为。一些条件语句已被删除。可以提供相同行为的不同实现。缺点:

  客户必须知道不同策略行为的细节。

  

一、策略模式

  根据不同的客户属性,采用不同的折扣策略来计算订单中的商品价格:

  拥有1000点或以上积分的客户将享受每笔订单5%的折扣。同一订单,单个商品数量达到20件以上,享受9折优惠。如果订单中有10个或10个以上不同的项目,享受7%的折扣。

  

二、应用场景

  实体角色:

  集成算法的上下文(Context):类。抽象策略(Strategy):实现了不同算法组件的公共接口。具体策略(Concrete Strategy):s抽象策略的具体子类。导入abc

  #抽象策略

  类策略(元类=abc。ABCMeta):

  @abc.abstractmethod

  定义执行(自身,数据):

  及格

  #具体策略1

  班级战略1(战略):

  定义执行(自身,数据):

  打印(使用策略1执行{数据})

  #具体战略2

  班级战略2(战略):

  定义执行(自身,数据):

  打印(使用策略2执行{数据})

  #上下文

  类别上下文:

  def __init__(self,data):

  自我策略=无

  self.data=数据

  def set_strategy(自身,策略):

  自我策略=策略

  def do_strategy(self):

  如果自我战略:

  self.strategy.execute

  else:

  打印(请先配置策略!)

  if __name__==__main__:

  数据=测试数据

  s1=策略1()

  s2=战略2()

  上下文=上下文(数据)

  上下文.设置_策略(s1)

  context.do_strategy()

  context.set _策略(s2)

  context.do_strategy()

  这就是关于Python设计模式中的行为策略模式的文章。关于Python策略模式的更多信息,请搜索流行的IT软件开发工作室以前的文章,或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: