Python Tasarım Modelleri - Gözlemci

Bu modelde nesneler, bir olayın tetiklenmesini bekleyen gözlemciler olarak temsil edilir. Bir gözlemci, belirtilen olay gerçekleştiğinde özneye bağlanır. Olay meydana geldiğinde, denek gözlemcilere bunun gerçekleştiğini söyler.

Aşağıdaki UML diyagramı, gözlemci modelini temsil eder -

Gözlemci modeli nasıl uygulanır?

Şimdi gözlemci modelinin nasıl uygulanacağını görelim.

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

Çıktı

Yukarıdaki program aşağıdaki çıktıyı üretir -

Açıklama

Yukarıdaki kod, belirli bir sonucu indirme prosedürünü açıklamaktadır. Gözlemci örüntü mantığına göre her nesne gözlemci olarak kabul edilir. Olay tetiklendiğinde çıktıyı yazdırır.