标签:
1 class Strategy: 2 3 def result(self,original): 4 return print(original) 5 6 class NormalStrategy(Strategy): 7 pass 8 9 class BargainStrategy(Strategy): 10 def __init__(self,discount): 11 self.discount = discount 12 13 def result(self,original): 14 return print(self.discount*original) 15 16 class CashBackStrategy(Strategy): 17 18 def __init__(self,limit,back): 19 self.limit = limit 20 self.back = back 21 22 def result(self,original): 23 if(original>=self.limit): 24 original -= self.back 25 return print(original) 26 27 class Context(): 28 29 def __init__(self,classname): #对象实例化并且调用其方法 30 self.classname = classname 31 32 def GetResult(self,original): 33 return print(self.classname.result(original)) #由于是普通方法,所以可以用类名来调用 34 35 original = int(input(‘输入原价:‘)) #对外仅仅暴露Context类 36 strategy = (input(‘请输入打折模式:(正常/8折/满300减100):‘)) 37 if(strategy ==‘正常‘): 38 Context(NormalStrategy()).GetResult(original) 39 elif(strategy == ‘8折‘): 40 Context(BargainStrategy(0.8)).GetResult(original) 41 if(strategy == ‘满300减100‘): 42 Context(CashBackStrategy(300,100)).GetResult(original)
标签:
原文地址:http://www.cnblogs.com/pengsixiong/p/4865604.html