首页 > 其他 > 详细

2:策略模式

时间:2015-10-10 01:34:02      阅读:219      评论:0      收藏:0      [点我收藏+]
 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)

 

2:策略模式

原文:http://www.cnblogs.com/pengsixiong/p/4865604.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!