码迷,mamicode.com
首页 > 其他好文 > 详细

2:策略模式

时间:2015-10-10 01:36:35      阅读:155      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!