Observer
优质
小牛编辑
138浏览
2023-12-01
在此模式中,对象表示为等待事件触发的观察者。 一旦指定事件发生,观察者就会附加到主题上。 当事件发生时,主体告诉观察者它已经发生。
以下UML图表示观察者模式 -
如何实现观察者模式?
现在让我们看看如何实现观察者模式。
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()
输出 (Output)
上述程序生成以下输出 -
说明 (Explanation)
上面的代码解释了下载特定结果的过程。 根据观察者模式逻辑,每个对象都被视为观察者。 它会在触发事件时打印输出。