Python设计模式 观察者模式

Python设计模式 观察者模式

在这个模式中,对象被表示为观察者,等待事件的触发。一旦指定的事件发生,观察者就会附着在主体上。当事件发生时,主体告诉观察者它已经发生。

下面的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()

输出

上述程序产生了以下输出 –

Python设计模式--观察者

解释

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程