मैं इस पैटर्न देख रहा हूँ NodeJS कार्यान्वयन, के लिए इन दिनों जहां हम अपना मॉड्यूल के लिए निम्न कोड है में:ES6 क्लास और module.exports
class Foo {
bar() {
console.log('bar');
}
}
module.exports = Foo;
फिर जब मैं एक की आवश्यकता होती है और अंत में बनाने के लिए नए कहते हैं कक्षा का एक उदाहरण।
var Foo = require(./foo);
var myFoo = new Foo();
myFoo.bar();
मेरे अनुसार यह पैटर्न क्लास फू के कई उदाहरण बनाएगा, हर बार इसे कहा जाता है।
अन्य पैटर्न ऐसा हो सकता था जिसका उपयोग मेरे foo.js में किया जाएगा।
module.exports = {
bar: function() {
console.log('bar');
}
};
और फिर मैं सिर्फ आवश्यकता होती है और कॉल बार।
var foo = require(./foo);
foo.bar();
प्रश्न ये दोनों एक ही व्यवहार करेंगे? क्या दूसरा पैटर्न ऑब्जेक्ट पर हर बार ऑब्जेक्ट्स बनाते रहेंगे और ऑब्जेक्ट पर बार कॉल करेगा?
सिंगलटन पैटर्न को 1 मामले में एक अच्छा विचार नहीं बना रहा है क्योंकि हम अन्य भाषाओं में उपयोग किए जाते हैं, जिसमें हम एक ही उदाहरण की सेवा करते रहेंगे यदि यह पहले से ही बनाया गया है?
आप ES6 का उपयोग कर रहे हैं, इसलिए सुनिश्चित करें कि बहुत कम ब्राउज़र इस सुविधा का समर्थन करता है। –
इरादा जेडएस में चलाने के लिए है और ब्राउजर में नहीं है। –