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.