Pola Desain Python - Pengamat
Dalam pola ini, objek direpresentasikan sebagai pengamat yang menunggu peristiwa dipicu. Seorang pengamat menempel pada subjek setelah peristiwa tertentu terjadi. Saat peristiwa itu terjadi, subjek memberi tahu pengamat bahwa peristiwa itu telah terjadi.
Diagram UML berikut merepresentasikan pola pengamat -
Bagaimana cara menerapkan pola pengamat?
Sekarang mari kita lihat bagaimana menerapkan pola pengamat.
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()
Keluaran
Program di atas menghasilkan keluaran berikut -
Penjelasan
Kode di atas menjelaskan prosedur mengunduh hasil tertentu. Sesuai logika pola pengamat, setiap objek diperlakukan sebagai pengamat. Ini mencetak output ketika acara dipicu.