美文网首页
Python策略模式

Python策略模式

作者: 虾想家 | 来源:发表于2017-03-19 15:47 被阅读23次

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

    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策略模式

          本文链接:https://www.haomeiwen.com/subject/kvnmnttx.html