观察者设计模式

广告位

在观察者设计模式这种模式中,对象被表示为等待事件触发的观察者。 一旦发生指定的事件,观察者就会关注该主体。 当…

在观察者设计模式这种模式中,对象被表示为等待事件触发的观察者。 一旦发生指定的事件,观察者就会关注该主体。 当事件发生时,主体告诉观察者它已经发生。

以下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()  

执行上述程序生成以下输出 –

观察者设计模式

解释说明

上面的代码解释了下载特定结果的过程。 根据观察者模式逻辑,每个对象都被视为观察者。 它在事件触发时打印输出。

  

拾荒的老头

关于作者: 拾荒的老头

为您推荐