जावास्क्रिप्ट में डिजाइन पैटर्न के लिए एक संक्षिप्त गाइड



यह लेख आपको बेहतर समझ के लिए सरल तरीके से जावास्क्रिप्ट में डिज़ाइन पैटर्न के बारे में विस्तृत दृष्टिकोण के साथ मदद करेगा।

आमतौर पर आवर्ती सॉफ्टवेयर समस्याओं के लिए उन्नत वस्तु उन्मुख समाधान हैं। पैटर्न वस्तुओं के पुन: प्रयोज्य डिजाइन और इंटरैक्शन हैं। प्रत्येक पैटर्न का एक नाम होता है और जटिल डिजाइन समाधानों पर चर्चा करते समय एक शब्दावली का हिस्सा बन जाता है।

जावास्क्रिप्ट में डिजाइन पैटर्न क्या हैं?

एक के रूप में परिभाषित किया जा सकता है सॉफ्टवेयर टेम्पलेट या सॉफ़्टवेयर अनुप्रयोग या सॉफ़्टवेयर फ़्रेमवर्क डिज़ाइन करते समय एक समस्या को हल करने के लिए कई उदाहरणों में होने वाला विवरण।





बिल्डर डिजाइन पैटर्न

बाइनरी अजगर कोड के लिए दशमलव

अब, हम गैंग ऑफ़ फोर (GoF) पर चर्चा करते हैं



चार की टोली

23 गैंग ऑफ़ फोर (GoF) पैटर्न को आमतौर पर अन्य सभी पैटर्न की नींव माना जाता है।

द गैंग ऑफ़ फोर (GoF) डिज़ाइन पैटर्न से:



पुन: प्रयोज्य वस्तु-उन्मुख सॉफ्टवेयर के तत्व, एडिसन-वेस्ले व्यावसायिक कम्प्यूटिंग श्रृंखला, द्वारा एरिच गामा, रिचर्ड हेल्म, राल्फ झोंसन, तथा जॉन व्लादिसाइड्स। टीhese 23 GoF पैटर्न को आमतौर पर अन्य सभी पैटर्न के लिए आधार माना जाता है।उन्हें तीन समूहों में वर्गीकृत किया गया है: रचनात्मक, संरचनात्मक और व्यवहार।

डिजाइन पैटर्न के प्रकार

जावास्क्रिप्ट में मूल रूप से तीन अलग-अलग प्रकार के डिज़ाइन पैटर्न हैं। वे इस प्रकार हैं:

रचनात्मक पैटर्न

सार फैक्टरी: यह वर्गों के कई परिवारों के साथ एक उदाहरण बनाता है। यह उन परिवारों को बनाने के लिए एक इंटरफ़ेस प्रदान करता है जो संबंधित या आश्रित वस्तुओं के बिना उनके ठोस वर्गों के विनिर्देशन के हैं।

बिल्डर: इसने वस्तु निर्माण को उसके प्रतिनिधित्व से अलग कर दिया। साथ ही एक जटिल वस्तु के निर्माण को उसके निरूपण से अलग करता है ताकि विभिन्न अभ्यावेदन के साथ ठीक वैसी ही निर्माण प्रक्रिया बनाई जा सके।

फैक्टरी विधि: यह कई व्युत्पन्न वर्गों के लिए एक उदाहरण बनाता है। एक ऑब्जेक्ट बनाने के लिए एक इंटरफ़ेस को भी परिभाषित करता है, लेकिन यह सबक्लास को यह तय करने देता है कि किस क्लास को तुरंत करना है। इसमें एक फैक्ट्री मेथड भी है जो सबक्लासेस को एक क्लास डिफरेंट इंस्ट्रक्शन देता है।

प्रोटोटाइप: यह पूरी तरह से प्रारंभिक उदाहरण है जिसे कॉपी या क्लोन किया जा सकता है। विशेष रूप से, एक प्रोटोटाइप उदाहरण का उपयोग करने के लिए ऑब्जेक्ट की तरह, इस प्रोटोटाइप को कॉपी करके नई ऑब्जेक्ट बनाएं।

सिंगलटन: यह नकल करने या क्लोन किए जाने के लिए पूरी तरह से प्रारंभिक उदाहरण है।एक प्रोटोटाइप उदाहरण का उपयोग करके और इस प्रोटोटाइप को कॉपी करके नई ऑब्जेक्ट बनाने के लिए यह विशिष्ट प्रकार की ऑब्जेक्ट्स है।

संरचनात्मक पैटर्न

एडाप्टर: यह विभिन्न वर्गों के इंटरफेस से मेल खाता है। क्लाइंट के अलावा क्लास के इंटरफ़ेस को दूसरे इंटरफ़ेस में परिवर्तित करता है। एडेप्टर कक्षाओं को एक साथ काम करने देता है जो असंगति इंटरफेस के कारण अन्यथा नहीं हो सकता था।

पुल: यह किसी वस्तु के इंटरफ़ेस को उसके कार्यान्वयन से अलग करता है। इसके क्रियान्वयन से एक सार को कम करना ताकि दोनों स्वतंत्र रूप से अलग-अलग हो सकें।

समग्र: एक पेड़ की संरचना सरल और समग्र वस्तुओं की है, भाग-पूरे पदानुक्रम का प्रतिनिधित्व करने के लिए पेड़ की संरचनाओं में वस्तुओं की रचना की। समग्र ग्राहकों को व्यक्तिगत वस्तुओं और वस्तुओं की रचनाओं को समान रूप से व्यवहार करने देता है।

डेकोरेटर: गतिशील रूप से वस्तुओं के लिए जिम्मेदारियों को जोड़ता है। किसी वस्तु को गतिशील रूप से अतिरिक्त जिम्मेदारियां देता है। सज्जाकार भी कार्यात्मकता बढ़ाने के लिए उपवर्ग के लिए एक लचीला विकल्प प्रदान करते हैं।

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

जावा में द्विआधारी खोज कार्यक्रम

फ्लाईवेट: एक बढ़िया अनाज का उपयोग कुशल साझाकरण के लिए उपयोग किया जाता है ताकि बड़ी संख्या में बढ़िया अनाज वाली वस्तुओं को कुशलता से समर्थन मिल सके। एक फ्लाईवेट एक साझा वस्तु है जिसे एक साथ कई संदर्भों में उपयोग किया जा सकता है।फ्लाईवेट प्रत्येक संदर्भ में एक स्वतंत्र वस्तु के रूप में भी काम करता है - यह उन वस्तुओं के उदाहरण से अप्रभेद्य है जो साझा नहीं की जाती हैं।

प्रॉक्सी: यह किसी अन्य वस्तु का प्रतिनिधित्व करने वाली वस्तु है। यह एक सरोगेट या एक प्लेसहोल्डर ऑब्जेक्ट प्रदान करता है ताकि उस तक पहुंच को नियंत्रित किया जा सके।

व्यवहार पैटर्न:

जिम्मेदारी की श्रृंखला: यह वस्तुओं की एक श्रृंखला के बीच एक अनुरोध पारित करने का एक तरीका है। यह प्रेषक के साथ युग्मन से बचा जाता है और अपने रिसीवर को अनुरोध को संभालने के लिए एक से अधिक ऑब्जेक्ट देकर एक अनुरोध भेजता है। प्राप्त वस्तुओं को जंजीर दिया जाता है और श्रृंखला के साथ अनुरोध को तब तक पारित किया जाता है जब तक कि कोई वस्तु उसे संभालती नहीं है।

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

दुभाषिया: यह एक कार्यक्रम में भाषा तत्वों को शामिल करने का एक तरीका है। भाषा को देखते हुए, व्याकरण के साथ-साथ व्याख्याकार के लिए एक निरूपण को परिभाषित करें जो भाषा में वाक्यों की व्याख्या करने के लिए प्रतिनिधित्व का उपयोग करता है।

Iterator: एक संग्रह के तत्वों की क्रमिक पहुंच एक अंतर्निहित वस्तु के तत्वों को क्रमिक रूप से इसके अंतर्निहित प्रतिनिधित्व को उजागर किए बिना एक्सेस करने का एक तरीका प्रदान करती है।

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

स्मृति चिन्ह: यह ऑब्जेक्ट की आंतरिक स्थिति को कैप्चर और पुनर्स्थापित करता है। यह किसी ऑब्जेक्ट की आंतरिक स्थिति को एनकैप्सुलेशन, कैप्चर और बाहरी करने का उल्लंघन नहीं करता है ताकि बाद में ऑब्जेक्ट को इस राज्य में पुनर्स्थापित किया जा सके।

देखने वाला: यह कई वर्गों के लिए परिवर्तन को सूचित करने का एक तरीका है। यह वस्तुओं के बीच एक-से-कई निर्भरता को परिभाषित करता है ताकि जब कोई वस्तु राज्य बदलती है, तो उसके सभी आश्रितों को स्वचालित रूप से अधिसूचित और अद्यतन किया जाता है।

राज्य: यह किसी वस्तु के व्यवहार को बदल देता है जब उसकी स्थिति बदल जाती है। किसी ऑब्जेक्ट को आंतरिक स्थिति में परिवर्तन होने पर उसके व्यवहार को बदलने देता है। ऑब्जेक्ट अपनी कक्षा को बदलने के लिए दिखाई देगा।

रणनीति: यह एक वर्ग के अंदर एक एल्गोरिथ्म को एन्क्रिप्ट करता है और एक परिवार के एल्गोरिथ्म को परिभाषित करता है, हर एक को इनकैप्सुलेट करता है, और फिर विनिमेय बनाता है। रणनीति एल्गोरिदम को इसका उपयोग करने वाले ग्राहकों से स्वतंत्र रूप से भिन्न होने देती है।

साँचा: एल्गोरिथ्म के सटीक चरणों को एक उपवर्ग में ले जाएं। यह एक ऑपरेशन में एक एल्गोरिथ्म के कंकाल को परिभाषित करता है, उपवर्गों के लिए कुछ महत्वपूर्ण चरणों को संदर्भित करता है। टेम्पलेट विधि हमें एल्गोरिथ्म की संरचना को बदलने के बिना एक एल्गोरिथ्म के कुछ चरणों को फिर से परिभाषित करने की सुविधा देता है।

आगंतुक: यह बिना किसी परिवर्तन के एक नए ऑपरेशन को परिभाषित करता है। ऑब्जेक्ट संरचना के तत्वों पर किए जाने वाले ऑपरेशन का प्रतिनिधित्व करते हैं। विज़िटर आपको उन तत्वों की कक्षाओं को बदलने के बिना एक नए ऑपरेशन को परिभाषित करने देता है, जिस पर वह संचालित होता है।

इसके साथ, हम इस लेख के अंत में आते हैं। मुझे आशा है कि आपने जावास्क्रिप्ट में डिज़ाइन पैटर्न, उनके प्रकार, महत्व और उनके कार्यान्वयन को समझा होगा।

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

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? इसे 'जावास्क्रिप्ट में डिज़ाइन पैटर्न' ब्लॉग के टिप्पणी अनुभाग में उल्लेख करें और हम जल्द से जल्द आपको वापस कर देंगे।

जेनकींस बनाम कठपुतली बनाम शेफ