Python策略模式

策略模式,同一问题有多种不同的解法,即不同策略,一个物体可以动态地对策略进行更换。

class Stragety(object):
    def __init__(self, name):
        self.name = name

    def do(self):
        print(self.name)


class Question(object):
    def __init__(self, question):
        self.question = question
        self.stragety = None

    def set_stragety(self, stragety):
        self.stragety = stragety

    def solve(self):
        self.stragety.do()


def main():
    question = Question('need to solve problem')
    stragety_a = Stragety('a')
    question.set_stragety(stragety_a)
    question.solve()
    stragety_b = Stragety('b')
    question.set_stragety(stragety_b)
    question.solve()


if __name__ == '__main__':
    main()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本系列文章是希望将软件项目中最常见的设计模式用通俗易懂的语言来讲解清楚,并通过Python来实现,每个设计模式都是...
    geekpy阅读 1,939评论 0 19
  • 这一节,我们使用python的策略模式进行一个简单的打折相关的设计开发(这里参考了-大话设计模式一书,有时间的同学...
    KillerManA阅读 652评论 0 0
  • [python|高级篇|笔记|设计模式|策略模式] 引子 接着开始吧,还是读了HF之后的学习记录。继承并不是适当的...
    plectrum阅读 894评论 0 7
  • 1 场景问题# 1.1 报价管理## 向客户报价,对于销售部门的人来讲,这是一个非常重大、非常复杂的问题,对不同的...
    七寸知架构阅读 5,134评论 9 62
  • 李笑来的一次分享《执行力:成为百分之一的秘密》,让我重新认识了什么是执行力。 关于执行力,只消稍微回想一下,什么兴...
    袁承兴阅读 1,981评论 2 1