2012-11-17 22 views
10

मैंने देखा है कि कुछ परियोजनाओं में Module PatternSingleton Pattern और इसके विपरीत के बजाय उपयोग करता है।मॉड्यूल पैटर्न और सिंगलटन पैटर्न के बीच अलग?

मैं वास्तव में जानना चाहता हूं, Module Pattern और Singleton Pattern के बीच क्या अंतर है?

+4

कृपया इसे देखें: http://addyosmani.com/resources/essentialjsdesignpatterns/book/#designpatternsjavascript – Teemu

+1

@Teemu यह एक अच्छा दस्तावेज़ है लेकिन यह उन दोनों के बीच अलग नहीं है। –

+0

बकवास के लिए अलग-अलग नाम या कार्यान्वयन? –

उत्तर

7

Module pattern जावास्क्रिप्ट में एक सामान्य तंत्र के लिए कोड के मॉड्यूलरिसेशन को संदर्भित करता है। यह कई फाइलों में एक "वर्ग" को विभाजित करने के लिए काफी अच्छा काम करता है क्योंकि आप रचनाकार और प्रोटोटाइप विधियों के विभिन्न समूहों को स्वतंत्र रूप से परिभाषित कर सकते हैं। प्रत्येक मॉड्यूल आमतौर पर स्थैतिक, स्थानीय चर बनाने के लिए बंद होने के अंदर लपेटा जाता है - इसे मॉड्यूल पैटर्न प्रकट करने के लिए कहा जाता है।

Singleton pattern जावास्क्रिप्ट में उदाहरण की रचनाओं के प्रतिबंध को संदर्भित करता है, अक्सर lazy initialisation का उपयोग करता है।

बेशक आप मॉड्यूल पैटर्न को सिंगलटन पैटर्न का विशेषज्ञता मान सकते हैं (Wikipedia article देखें), कन्स्ट्रक्टर और इसकी प्रोटोटाइप ऑब्जेक्ट तब "एकल उदाहरण" का हिस्सा लेगा।

फिर भी आप उन्हें "स्वतंत्र रूप से" भी जोड़ सकते हैं: एक मॉड्यूल जो सिंगलटन दृष्टिकोण का उपयोग करने वाली कक्षा को परिभाषित करता है।

+2

तो, क्या 'सिंगल पैटर्न' के रूप में 'मॉड्यूल पैटर्न' का उपयोग करना सही है? –

+1

निश्चित रूप से, आपके पास एक मॉड्यूल भी हो सकता है जो किसी भी वर्ग के बिना एक सिंगलटन ऑब्जेक्ट बनाता है (अधिक प्रोटोटाइपिकल दृष्टिकोण) – Bergi

+0

@ बर्गि मुझे इस पर जोड़ने का सवाल था: पैटर्न 'Utilities.game_manager = {functionName: फ़ंक्शन() {var1, var2 ...}, ...}; 'मॉड्यूल पैटर्न जितना अधिक वैरिएबल छुपाता है (यानी, यह' Utilities.game_manager' की फ़ंक्शन प्रॉपर्टी के अंदर चर नहीं दिखाता है) । क्या इस और मॉड्यूल पैटर्न के बीच कोई अंतर है? मेरा मतलब है, प्रकटीकरण मॉड्यूल पैटर्न उन कार्यों को लौटाता है जो छुपे हुए चर का पर्दाफाश कर सकते हैं, लेकिन आप इसे दिखाए गए पैटर्न के साथ कर सकते हैं। – Growler

संबंधित मुद्दे