python设计模式(策略模式)

来源:互联网 发布:编曲软件 知乎 编辑:程序博客网 时间:2024/05/02 02:54

#学习版本3.5.2#策略模式,定义一些列算法,把每一个算法都封装起来,并且使它们可以相互替换。#该模式使得算法可独立于使用它的客户变化#例如:出去旅游选择交通方式class TravelStrategy(object):    def travelAlgorithm(self):        passclass AirPlaneStrategy(TravelStrategy):    def travelAlgorithm(self):        print("travel by airplane")class TrainStrategy(TravelStrategy):    def travelAlgorithm(self):        print("travel by train")class BicycleStrategy(TravelStrategy):    def travelAlgorithm(self):        print("travel by bycycle")class PersonContext(object):    def __init__(self, strategy):        self._strategy = strategy    def changeStrategy(self, strategy):        self._strategy = strategy    def travel(self):        self._strategy.travelAlgorithm()if __name__ == "__main__":    pc = PersonContext(BicycleStrategy())    pc.travel()    pc.changeStrategy(TrainStrategy())    pc.travel()

运行结果

travel by bycycletravel by train


原创粉丝点击