在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ 觀察者設計模式
反模式
隊列
適配器設計模式
享元設計模式
Python設計模式
工廠模式
模板設計模式
構(gòu)建器(Builder)設計模式
Python設計模式概要
命令設計模式
Python設計模式簡介
觀察者設計模式
代理設計模式
異常處理
責任鏈設計模式
字典實現(xiàn)
抽象工廠設計模式
Python并發(fā)(多線程)
策略設計模式
門面(Facade)設計模式
原型設計模式
迭代器設計模式
集合
單例模式
列表數(shù)據(jù)結(jié)構(gòu)
狀態(tài)設計模式
模型視圖控制器(MVC)模式
裝飾器設計模式
面向?qū)ο蟾拍畹膶崿F(xiàn)
面向?qū)ο笤O計模式
字符串和序列化

觀察者設計模式

在觀察者設計模式這種模式中,對象被表示為等待事件觸發(fā)的觀察者。 一旦發(fā)生指定的事件,觀察者就會關注該主體。 當事件發(fā)生時,主體告訴觀察者它已經(jīng)發(fā)生。

以下UML圖表示觀察者模式 -

如何實現(xiàn)觀察者模式?

現(xiàn)在讓我們來看看如何實現(xiàn)觀察者模式。參考以下實現(xiàn)代碼 -

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

執(zhí)行上述程序生成以下輸出 -

解釋說明

上面的代碼解釋了下載特定結(jié)果的過程。 根據(jù)觀察者模式邏輯,每個對象都被視為觀察者。 它在事件觸發(fā)時打印輸出。


上一篇:隊列下一篇:集合