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

जावास्क्रिप्ट डिज़ाइन पैटर्न - व्यवहार - पर्यवेक्षक

2024-08-18 को प्रकाशित
ब्राउज़ करें:783

JavaScript Design Patterns - Behavioral - Observer

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

इस उदाहरण में, हम एक सरल वर्ग उत्पाद बना रहे हैं जिसे अन्य वर्ग register() विधि में परिवर्तनों के बारे में दर्ज करते हुए देख सकते हैं। जब कुछ अद्यतन किया जाता है, तो notifyAll() विधि इन परिवर्तनों के बारे में सभी पर्यवेक्षकों के साथ संचार करेगी।

class ObservedProduct {
  constructor() {
    this.price = 0;
    this.actions = [];
  }

  setBasePrice(val) {
    this.price = val;
    this.notifyAll();
  }

  register(observer) {
    this.actions.push(observer);
  }

  unregister(observer) {
    this.actions.remove.filter(function (el) {
      return el !== observer;
    });
  }

  notifyAll() {
    return this.actions.forEach(
      function (el) {
        el.update(this);
      }.bind(this)
    );
  }
}

class Fees {
  update(product) {
    product.price = product.price * 1.2;
  }
}

class Profit {
  update(product) {
    product.price = product.price * 2;
  }
}

export { ObservedProduct, Fees, Profit };

एक संपूर्ण उदाहरण यहां है? https://stackblitz.com/edit/vitejs-vite-kyucyd?file=main.js

निष्कर्ष

इस पैटर्न का उपयोग तब करें जब एक वस्तु की स्थिति में परिवर्तन के लिए अन्य वस्तुओं को बदलने की आवश्यकता हो, और वस्तुओं का वास्तविक सेट पहले से अज्ञात हो या गतिशील रूप से बदलता हो।


मुझे आशा है कि आपको यह उपयोगी लगा होगा। पढ़ने के लिए धन्यवाद। ?

आइए जुड़ें! आप मुझे यहां पा सकते हैं:

  • मध्यम: https://medium.com/@nhannguyendevjs/
  • देव: https://dev.to/nhannguyendevjs/
  • हैशनोड: https://nhannguyen.hashnode.dev/
  • लिंक्डइन: https://www.linkedin.com/in/nhannguyendevjs/
  • X (पूर्व में ट्विटर): https://twitter.com/nhannguyendevjs/
  • मेरे लिए कॉफ़ी खरीदें: https://www.buymeacoffee.com/nhannguyendevjs
विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/nhannguyendevjs/javascript-design-patterns-behavioral-observer-g70?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3