Python基础设计模式 观察者模式、营销模式、
【摘要】
#观察者模式
class Recetion():
def __init__(self): #status 动作 状态
self.oberserList=[] ...
#观察者模式
class Recetion():
def __init__(self): #status 动作 状态
self.oberserList=[] #oberser观察者
self.status=" "
def attach(self,obj):
self.oberserList.append(obj)
def notify(self): #notify通告
for obj in self.oberserList:
obj.notify()
class Hero():
def __init__(self,name,recpt):
self.name=name
self.recpt=recpt
def notify(self):
print("%s请注意:请不要玩lol了%s"%(self.name,self.recpt.status))
class Observer(): #被观察的
def __init__(self,name,recpt):
self.name=name
self.recpt=recpt
def notify(self):
print("%s请注意:请不要玩手机了%s"%(self.name,self.recpt.status))
boss=Recetion()
zs=Observer("张三",boss)
ls=Observer("李四",boss)
ww=Hero("王五",boss)
xm=Hero("小明",boss)
boss.attach(zs)
boss.attach(ls)
boss.attach(ww)
boss.attach(xm)
boss.status="老板娘来了"
boss.notify()
class Boss():
def __init__(self):
self.obList=[]
self.msg=''
def attach(self,obj):
self.obList.append(obj)
def notify(self):
for obj in self.obList:
obj.update()
class Market(): #market市场
def __init__(self,name,boss):
self.name=name
self.boss=boss
def update(self):
print("市场部的哥们:{} 您好,{}".format(self.name,self.boss.msg))
class Tech(): #tech技术
def __init__(self,name,boss):
self.name=name
self.boss=boss
def update(self):
print("技术部的哥们:{} 您好,{}".format(self.name,self.boss.msg))
boss=Boss()
zs=Market("张三",boss)
ls=Market("李四",boss)
ww=Tech("王五",boss)
boss.attach(zs)
boss.attach(ls)
boss.attach(ww)
boss.msg="下午开会"
boss.notify()
#营销模式
class CashNormal(): #cash 现金 #normal正常
def getCashMoney(self,money):
return money
class CashRate(): #现金 rate打折
def __init__(self,rate):
self.rate=rate
def getCashMoney(self,money):
return money * self.rate
class CashReturn():
def __init__(self,moneyCondition,moneyReturn): #moneycondition 限制返还的最低金额
self.moneyCondition = moneyCondition
self.moneyReturn = moneyReturn
def getCashMoney(self,money):
if money >=self.moneyCondition:
return money-(money//self.moneyCondition)*self.moneyReturn
return money
class Oper():
def __init__(self,cash):
self.cash=cash
def getCash(self,money):
return self.cash.getCashMoney(money)
zd={}
cashNormal=CashNormal()
cashRate=CashRate(0.8)
cashReturn=CashReturn(400,50)
zd[1]=Oper(cashNormal)
zd[2]=Oper(cashRate)
zd[3]=Oper(cashReturn)
money=int(input("请输入现金"))
cl=int(input("请输入收费策略"))
if cl in zd:
print(zd[cl].getCash(money))
else:
print(zd[1].getCash(money))
```
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
文章来源: blog.csdn.net,作者:考古学家lx,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_43582101/article/details/84711992
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)