#学习版本3.5.2
#策略模式,定义一些列算法,把每一个算法都封装起来,并且使它们可以相互替换。
#该模式使得算法可独立于使用它的客户变化
#例如:出去旅游选择交通方式
class TravelStrategy(object):
def travelAlgorithm(self):
pass
class 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 bycycle
travel by train