查看: 423|回复: 3
打印 上一主题 下一主题

【设计模式玩pyBoard】10.观察者模式

[复制链接] qrcode

28

主题

30

帖子

90

积分

注册会员

Rank: 2

积分
90
楼主
跳转到指定楼层
发表于 2016-6-7 11:47 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    观察者模式:定义一种一对多的关系,让多个观察对象同时监听一个对象,当对象状态发生变化时通知所有的观察者。
    代码:

  1. import pyb

  2. class Observer:
  3.         def __init__(self):
  4.                 pass
  5.         def Update(self):
  6.                 pass
  7.                
  8. class LED1(Observer):
  9.         def Update(self):
  10.                 pyb.led(1).on()
  11.                
  12. class LED2(Observer):
  13.         def Update(self):
  14.                 pyb.led(2).on()
  15.                
  16. class SecretaryBase:
  17.         def __init__(self):
  18.                 self.Observers = []
  19.         def Attach(self, ob):
  20.                 pass
  21.         def notify(self):
  22.                 pass
  23.                
  24. class Secretary(SecretaryBase):
  25.         def Attach(self, ob):
  26.                 self.Observers.append(ob)
  27.         def Notify(self):
  28.                 for o in self.Observers:
  29.                         o.Update()

  30. if __name__ == "__main__":
  31.     s = Secretary()
  32.         l1 = LED1(s)
  33.         l2 = LED2(s)
  34.         s.Attach(l1)
  35.         s.Attach(l2)
  36.         s.Notify()
复制代码

        自习课上,有的同学在睡觉,有的在看小说,有的在打牌。大家请坐在门口的同学,当老师快来的时候通知大家。


回复

使用道具 举报

2

主题

103

帖子

22

积分

新手上路

Rank: 1

积分
22
沙发
发表于 2016-6-8 11:19 AM | 只看该作者
文化低,没看懂?
回复 支持 反对

使用道具 举报

0

主题

80

帖子

4

积分

新手上路

Rank: 1

积分
4
板凳
发表于 2016-6-8 09:31 PM | 只看该作者
灵澈 发表于 2016-6-8 11:19
文化低,没看懂?

消息群发,短信广告常用的方法
回复 支持 反对

使用道具 举报

0

主题

91

帖子

24

积分

新手上路

Rank: 1

积分
24
地板
发表于 2016-6-8 10:44 PM | 只看该作者
灵澈 发表于 2016-6-8 11:19
文化低,没看懂?

好尴尬呀,,感觉模式,,好负责呀,,,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表