观察者设计模式

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

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

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

解释说明

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


上一篇:责任链设计模式

下一篇:状态设计模式

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程