Python 设计模式 - 观察者模式(Observer Pattern)
在观察者模式(Observer Pattern)中,对象表示为等待事件触发的观察者。 一旦指定的事件发生,观察者就会附加到主题上。 当事件发生时,主体告诉观察者它已经发生。
下面的UML图表示观察者模式 −
Python 如何实现观察者模式?
现在让我们看看如何实现观察者模式。
import threading import time import pdb class Downloader(threading.Thread): def run(self): print 'downloading' for i in range(1,5): self.i = i time.sleep(2) print 'unfunf' return 'hello world' class Worker(threading.Thread): def run(self): for i in range(1,5): print 'worker running: %i (%i)' % (i, t.i) time.sleep(1) t.join() print 'done' t = Downloader() t.start() time.sleep(1) t1 = Worker() t1.start() t2 = Worker() t2.start() t3 = Worker() t3.start()
输出
以上程序生成如下输出 −
说明
以上代码解释了下载特定结果的过程。 根据观察者模式逻辑,每个对象都被视为观察者。 它在触发事件时打印输出。