جدید سافٹ وئیر ایپلیکیشنز کے لیے ایک پلیٹ فارم بنانا بہت ضروری ہے.

دیکھنے والے کی سمجھ

دیکھنے والے system کے درمیان ایک-ٹو آپس میں ایک دوسرے کے ربط کی وضاحت کرتا ہے. جب کسی چیز (وضع) کی حالت تبدیل ہوتی ہے تو اس کے تمام حروف کو خودکار طور پر تبدیل نہیں کیا جاتا۔ یہ انداز خاص طور پر اسم (symport) کو عمل میں لانے کے لیے مفید ہوتا ہے جیسے کہ اطلاعات، جن میں کئی اجزاء تبدیلی کے لیے رد عمل ضروری ہے۔

پافوس میں پائی جانے والی پُراسرار خوراک

پا پانے والے پیالے کو کلاسوں اور طریقوں سے استعمال کر کے دیکھ بھال کرنے والے servation کر سکتے هيں موضوع مشاہدین کی فہرست سنبھالتا هے اور ان کو ملانے کے طریقے بتاتا هے اور انکو تجدید کے ليے عام تناسب استعمال کرتا هے

موضوعاتی کلاس تشکیل دینا

موضوع کی کلاس مشاہدین کی فہرست کا انتظام کرتی ہے اور ان میں ترمیم اور تنسیخ کے طریقے فراہم کرتی ہے۔

class Subject:
 def __init__(self):
 self.observers = []

 def attach(self, observer):
 self.observers.append(observer)

 def detach(self, observer):
 self.observers.remove(observer)

 def notify(self, message):
 for observer in self.observers:
 observer.update(message)

نگہبان ڈسکہ بنانے کی کوشش کریں

ناظرین اطلاعات کو ہینڈل کرنے کے لیے تجدیدی طریقہ کار کو عمل میں لانا ہوتا ہے۔

class Observer:
 def update(self, message):
 raise NotImplementedError("Subclass must implement update method")

صدارتی نگہبانوں کی ذمہ‌داری

کوارکٹ مشاہدین اطلاعات کے مخصوص رد عمل کا تعین کرتے ہیں، جیسے کہ پیغام چھاپ کر یا صارف کے رویے کو درست کرنے کے لیے

class EmailNotification(Observer):
 def update(self, message):
 print(f"Sending email notification: {message}")

class LogNotification(Observer):
 def update(self, message):
 print(f"Logging message: {message}")

غیر متصل نظام کا استعمال

سسٹم استعمال کرنے کے لیے، موضوع بنائیں، متضاد مشاہدین بنائیں اور اطلاعات بھیجیں. اس تناظر میں مشاہدین کو فعال یا خارج کرنے کی اجازت دی جاتی ہے۔

# Create subject
notification_center = Subject()

# Create observers
email_alert = EmailNotification()
log_alert = LogNotification()

# Attach observers
notification_center.attach(email_alert)
notification_center.attach(log_alert)

# Send a notification
notification_center.notify("New message received!")

یہ انداز اس بات کو یقینی بناتا ہے کہ آپ کا تبلیغی نظام ہموار اور آسانی سے وسیع ہے. آپ موجودہ کوڈ میں ترمیم کیے بغیر نئی اطلاعاتی اقسام شامل کر سکتے ہیں،