开发手册 欢迎您!
软件开发者资料库

Python设计模式 - 观察者

Python设计模式观察者 - 从简单和简单的步骤学习Python设计模式从基本到高级概念,包括简介,Python的Gist,模型视图控制器,单例,工厂,构建器,原型,外观,命令,适配器,装饰器,代理,责任链,观察员,状态,战略,模板,飞重,抽象工厂,面向对象的模式,面向对象的概念实施,迭代器模式,词典,列表数据结构,集,队列,字符串和序列化,Python中的并发,反模式, 异常处理。

在此模式中,对象表示为等待事件触发的观察者.一旦指定事件发生,观察者就会附加到主题上.当事件发生时,主体告诉观察者它已经发生.

以下UML图表示观察者模式 :

观察者模式

如何实现观察者模式?

现在让我们看看如何实现观察者模式.

import threadingimport timeimport pdbclass 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()

输出

上述程序生成以下输出 :

观察者模式输出

解释

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