"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावास्क्रिप्ट में पबसब (पब्लिश-सब्सक्राइब) डिज़ाइन पैटर्न को समझना

जावास्क्रिप्ट में पबसब (पब्लिश-सब्सक्राइब) डिज़ाइन पैटर्न को समझना

2024-10-31 को प्रकाशित
ब्राउज़ करें:529

Understanding the PubSub (Publish-Subscribe) Design Pattern in JavaScript

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

इस लेख में, हम यह पता लगाएंगे कि ऑब्जेक्ट-आधारित दृष्टिकोण और क्लास-आधारित दृष्टिकोण दोनों का उपयोग करके जावास्क्रिप्ट में पबसब पैटर्न को कैसे लागू किया जाए। अंत तक, आपको अपनी परियोजनाओं में इस पैटर्न का उपयोग करने की ठोस समझ हो जाएगी।

वस्तु-आधारित कार्यान्वयन
ऑब्जेक्ट-आधारित दृष्टिकोण उन परिदृश्यों के लिए सरल और प्रभावी है जहां एक वैश्विक इवेंट मैनेजर पर्याप्त है। यहां बताया गया है कि आप इसे कैसे कार्यान्वित कर सकते हैं:

pubsub.js
const PubSub = {
    subscribers: [],

    subscribe: function(subscriber) {
        this.subscribers.push(subscriber);
    },

    publish: function(payload) {
        this.subscribers.forEach(subscriber => {
            subscriber(payload);
        });
    }
};

export default PubSub;

ऑब्जेक्ट-आधारित पबसब का उपयोग कैसे करें
अपने एप्लिकेशन में, आप जहां भी आवश्यकता हो, PubSub ऑब्जेक्ट को आयात कर सकते हैं। यहाँ एक उदाहरण है:

// file1.js
import PubSub from './pubsub';

PubSub.subscribe((payload) => {
    console.log('File 1 received:', payload);
});
// file2.js
import PubSub from './pubsub';

PubSub.subscribe((payload) => {
    console.log('File 2 received:', payload);
});
// main.js
import PubSub from './pubsub';

PubSub.publish('Hello from main!');

वर्ग-आधारित कार्यान्वयन
अधिक लचीलेपन के लिए या जब आपको पबसब सिस्टम के कई उदाहरणों की आवश्यकता होती है, तो क्लास-आधारित दृष्टिकोण का उपयोग किया जा सकता है। यह आपको ग्राहकों की अपनी सूची के साथ स्वतंत्र पबसब इंस्टेंस बनाने की अनुमति देता है।

class PubSub {
    constructor() {
        this.subscribers = [];
    }

    subscribe(subscriber) {
        this.subscribers.push(subscriber);
    }

    unsubscribe(subscriber) {
        this.subscribers = this.subscribers.filter(sub => sub !== subscriber);
    }

    publish(payload) {
        this.subscribers.forEach(subscriber => {
            try {
                subscriber(payload);
            } catch (error) {
                console.error('Error in subscriber:', error);
            }
        });
    }
}

export default PubSub;

क्लास-आधारित पबसब का उपयोग कैसे करें
यहां एक उदाहरण दिया गया है कि आप अपने एप्लिकेशन में क्लास-आधारित पबसब पैटर्न का उपयोग कैसे कर सकते हैं:

import PubSub from './pubsub';

// Create an instance of PubSub
const pubSubInstance = new PubSub();

// Subscribe to events
pubSubInstance.subscribe((payload) => {
    console.log('Instance 1 received:', payload);
});

pubSubInstance.subscribe((payload) => {
    console.log('Instance 2 received:', payload);
});

// Publish an event
pubSubInstance.publish('Hello from instance!');

निष्कर्ष
पबसब पैटर्न आपके एप्लिकेशन के विभिन्न हिस्सों के बीच संचार के प्रबंधन के लिए एक शक्तिशाली उपकरण है। चाहे आप ऑब्जेक्ट-आधारित या क्लास-आधारित कार्यान्वयन का उपयोग करना चुनते हैं, यह आपकी विशिष्ट आवश्यकताओं पर निर्भर करता है। ऑब्जेक्ट-आधारित दृष्टिकोण सरल और सीधा है, छोटी परियोजनाओं के लिए आदर्श है या जब एक वैश्विक इवेंट मैनेजर पर्याप्त होता है। दूसरी ओर, वर्ग-आधारित दृष्टिकोण अधिक लचीलापन प्रदान करता है और बड़े अनुप्रयोगों के लिए बेहतर अनुकूल है जहां आपको पबसब सिस्टम के कई उदाहरणों की आवश्यकता हो सकती है।

अपनी परियोजनाओं में इन उदाहरणों का बेझिझक उपयोग करें और अपनी आवश्यकताओं के अनुरूप उन्हें संशोधित करें। हैप्पी कोडिंग!

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/ashok_24_99c5ee15c6ad5150/understandard-the-pubsub-publish-subscribe-design-pattern-in-javascript-3o35?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163.com पर संपर्क करें। इसे हटाने के लिए
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3