एक लचीला अधिसूचना प्रणाली बनाना आधुनिक सॉफ्टवेयर अनुप्रयोगों के लिए आवश्यक है। पर्यवेक्षक पैटर्न, सॉफ्टवेयर इंजीनियरिंग में एक डिजाइन पैटर्न, पायथन में ऐसी प्रणालियों को लागू करने के लिए एक सुरुचिपूर्ण समाधान प्रदान करता है। यह ऑब्जेक्ट्स को अन्य ऑब्जेक्ट्स से अपडेट को गतिशील रूप से सब्सक्राइब करने और प्राप्त करने की अनुमति देता है, जिससे ढीले युग्मन और स्केलेबिलिटी को बढ़ावा मिलता है।

पर्यवेक्षक पैटर्न को समझना

पर्यवेक्षक पैटर्न ऑब्जेक्ट्स के बीच एक-से-मैनी निर्भरता को परिभाषित करता है। जब किसी वस्तु (समाचार) में परिवर्तन होता है, तो उसके सभी निर्भर (observers) को स्वचालित रूप से अधिसूचित किया जाता है। यह पैटर्न विशेष रूप से घटना हैंडलिंग सिस्टम को लागू करने के लिए उपयोगी है, जैसे कि अधिसूचनाएं, जहां कई घटकों को परिवर्तन के लिए प्रतिक्रिया करने की आवश्यकता होती है।

पायथन में पैटर्न को लागू करना

पायथन में, पर्यवेक्षक पैटर्न को कक्षाओं और विधियों का उपयोग करके कार्यान्वित किया जा सकता है। विषय पर्यवेक्षकों की एक सूची बनाए रखता है और उन्हें संलग्न करने, अलग करने और उन्हें सूचित करने के तरीके प्रदान करता है। पर्यवेक्षक अद्यतन प्राप्त करने के लिए एक आम इंटरफ़ेस को लागू करते हैं।

विषय वर्ग बनाना

विषय वर्ग पर्यवेक्षकों की एक सूची का प्रबंधन करता है और उन्हें संशोधित करने और सूचित करने के तरीकों को प्रदान करता है।

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!")

यह पैटर्न यह सुनिश्चित करता है कि आपकी अधिसूचना प्रणाली लचीला और आसानी से विस्तार योग्य है। आप मौजूदा कोड को संशोधित किए बिना नए अधिसूचना प्रकारों को जोड़ सकते हैं, जो सॉफ़्टवेयर डिज़ाइन के खुले-बंद सिद्धांत का पालन करते हैं।