एमवीसी, एमवीपी, एमवीवीएम: कौन सा चुनना है?

एमवीसी, एमवीपी, एमवीवीएम: कौन सा चुनना है?

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





तीन सबसे लोकप्रिय डिजाइन पैटर्न एमवीसी, एमवीपी और एमवीवीएम हैं। एमवीसी मॉडल, व्यू और कंट्रोलर के लिए खड़ा है, जबकि एमवीपी मॉडल, व्यू और प्रेजेंटर के लिए है, और एमवीवीएम मॉडल, व्यू और व्यू मॉडल के लिए है।





वास्तुकला और डिजाइन पैटर्न

वास्तुकला पैटर्न

एक आर्किटेक्चरल पैटर्न एक सॉफ्टवेयर आर्किटेक्चर के कुछ महत्वपूर्ण घटकों को स्पष्ट और परिभाषित करता है। भले ही एक वास्तुशिल्प पैटर्न एक प्रणाली की एक छवि बताता है, यह एक वास्तुकला नहीं है . वास्तव में, यह एक निश्चित संदर्भ में सॉफ़्टवेयर आर्किटेक्चर में सामान्य रूप से होने वाली समस्या का एक सामान्य और पुन: प्रयोज्य समाधान है।





डिज़ाइन पैटर्न

एक डिज़ाइन पैटर्न एक औपचारिक सर्वोत्तम अभ्यास है जिसका उपयोग आप किसी एप्लिकेशन या सिस्टम को डिज़ाइन करते समय सामान्य समस्याओं को हल करने के लिए कर सकते हैं।

प्लेस्टेशन पासवर्ड रीसेट ईमेल प्राप्त नहीं हुआ

वास्तुकला और डिजाइन पैटर्न के बीच का अंतर

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



सॉफ्टवेयर विकास के प्रत्येक स्तर में, आप विभिन्न उपकरणों का उपयोग करेंगे। छोटे स्तरों पर, ये उपकरण डिज़ाइन पैटर्न हैं। स्थापत्य पैटर्न बड़े स्तरों पर मौजूद हैं, और प्रोग्रामिंग प्रतिमान कार्यान्वयन स्तर पर।

हमें वास्तुशिल्प डिजाइन पैटर्न की आवश्यकता क्यों है?

सॉफ़्टवेयर विकास के दौरान, आप सामान्य समस्याओं को हल करने के लिए आर्किटेक्चरल डिज़ाइन पैटर्न का उपयोग कर सकते हैं। अच्छी वास्तुकला भी आपकी मदद कर सकती है:





  • जटिल कार्यों को सरल कार्यों में विभाजित करें।
  • बग कम करें।
  • परीक्षण योग्य और रखरखाव योग्य कोड तैयार करें।

लेकिन आर्किटेक्चरल पैटर्न के बिना, आपको अपने ऐप के व्यावसायिक तर्क को बनाए रखने में कठिनाइयों का सामना करना पड़ सकता है।

मॉडल, व्यू, व्यूमॉडल, कंट्रोलर और प्रेजेंटर

इससे पहले कि आप प्रत्येक पैटर्न को देखें, यहां वे शब्द हैं जो उन्हें बनाते हैं:





  • नमूना डेटा स्टोर करता है और डेटाबेस के साथ सीधे संचार करता है। मॉडल वह हिस्सा है जो आपके डेटा और एप्लिकेशन लॉजिक का प्रतिनिधित्व करता है। यह उन व्यावसायिक नियमों को परिभाषित करता है जो डेटा प्रबंधन, संशोधन या प्रसंस्करण का प्रबंधन करते हैं।
  • राय मॉडल के डेटा को प्रदर्शित करता है और यूजर इंटरफेस में डेटा के प्रतिनिधित्व के लिए जिम्मेदार है।
  • व्यू मॉडल एमवीवीएम पैटर्न के लिए विशिष्ट है। यह दृश्य परत का एक अमूर्त है और मॉडल डेटा के लिए एक आवरण के रूप में भी कार्य करता है।
  • नियंत्रक वह घटक है जो दृश्य और मॉडल को एकीकृत करता है।
  • प्रस्तुतकर्ता एक घटक है जो केवल एमवीपी मॉडल में मौजूद है। प्रस्तुतकर्ता दृश्य घटक से इनपुट प्राप्त करता है और मॉडल की सहायता से डेटा को संसाधित करता है।

एमवीसी, एमवीपी, और एमवीवीएम पैटर्न

मॉडल-व्यू-कंट्रोलर पैटर्न

एमवीसी वास्तुकला पैटर्न पहला था, और यह आज वेब अनुप्रयोगों के क्षेत्र में लोकप्रिय है। इसे 1970 के दशक में पेश किया गया था। यह पैटर्न आपको सेपरेशन ऑफ कंसर्न (SoC) के आसपास एक एप्लिकेशन बनाने देता है। यह आपके एप्लिकेशन के परीक्षण, रखरखाव और विकास के लिए आवश्यक प्रयास को आसान बनाता है।

एमवीसी पैटर्न में, मॉडल को दृश्य या नियंत्रक की कोई समझ नहीं है। जब भी व्यू और कंट्रोलर में कोई बदलाव होगा तो मॉडल के ऑब्जर्वर को अलर्ट प्राप्त होगा। नियंत्रक मॉडल को प्रासंगिक दृश्य से जोड़ने के लिए रूटिंग प्रक्रिया में मदद करता है।

एमवीसी पैटर्न के कुछ फायदे हैं:

  • चिंताओं का पृथक्करण (अधिक केंद्रित)।
  • कोड का परीक्षण और प्रबंधन करना आसान बनाता है।
  • एप्लिकेशन की परतों के decoupling को बढ़ावा देता है।
  • बेहतर कोड संगठन और पुन: प्रयोज्य।

यहां बताया गया है कि एमवीसी कैसे काम करता है:

  एक आरेख की छवि जो दर्शाती है कि एमवीसी कैसे काम करता है

एसओसी के कारण, एमवीसी कोड आकार को कम कर सकता है और एक अच्छा कोड बना सकता है जो साफ और प्रबंधनीय है।

मॉडल-व्यू-प्रस्तुतकर्ता पैटर्न

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

एमवीपी में, प्रस्तुतकर्ता के पास 'मध्य-पुरुष' की कार्यक्षमता होती है क्योंकि सभी प्रस्तुति तर्क को इसमें धकेल दिया जाता है। एमवीपी में दृश्य और प्रस्तुतकर्ता भी एक दूसरे से स्वतंत्र होते हैं और एक इंटरफेस के माध्यम से बातचीत करते हैं।

एमवीपी पैटर्न कैसे काम करता है इसका एक उदाहरण यहां दिया गया है:

  एक आरेख की छवि जो दर्शाती है कि एमवीपी कैसे काम करता है

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

मॉडल-व्यू-व्यूमॉडल पैटर्न

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

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

एमवीवीएम कैसे काम करता है इसका एक उदाहरण यहां दिया गया है:

  एक आरेख की छवि जो दर्शाती है कि एमवीवीएम कैसे काम करता है

एमवीसी, एमवीपी और एमवीवीएम का उपयोग कब करें

अब जब आप प्रत्येक पैटर्न के बारे में जान गए हैं, तो पता करें कि उनका उपयोग कब करना है।

एमवीसी का उपयोग कब करें

एमवीसी केवल चिंताओं के पृथक्करण का कार्यान्वयन है। यदि आपके एप्लिकेशन को डेटा (मॉडल), डेटा क्रंचिंग (नियंत्रक), और डेटा प्रस्तुति (देखें) को अलग करने की आवश्यकता है, तो एमवीसी अच्छी तरह से काम करेगा। एमवीसी एक ऐसे अनुप्रयोग में भी अच्छी तरह से कार्य करता है जहां डेटा स्रोत और/या डेटा प्रस्तुति किसी भी समय बदल सकती है।

एमवीपी का उपयोग कब करें

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

एमवीवीएम का उपयोग कब करें

आप एमवीवीएम का उपयोग करना चाहेंगे जब:

  • आपको एक डिजाइनर के साथ एक परियोजना साझा करने की आवश्यकता है और डिजाइन और विकास कार्य स्वतंत्र रूप से हो सकता है।
  • आपको अपने समाधानों के लिए इकाई परीक्षण की आवश्यकता है।
  • आपको अपने संगठन में परियोजनाओं के भीतर और पूरे दोनों में पुन: प्रयोज्य घटकों की आवश्यकता है।
  • आप कोड आधार में अन्य तर्कों को पुन: सक्रिय किए बिना अपने विचारों को बदलने के लिए अधिक लचीलापन चाहते हैं।

आपको कौन सा पैटर्न चुनना चाहिए?

डिज़ाइन पैटर्न का उपयोग करने का मुख्य कारण जटिलता को कम करना है। आप समग्र जटिलता को कम करके या अपरिचित जटिलता को परिचित के साथ बदलकर ऐसा कर सकते हैं। यदि कोई डिज़ाइन पैटर्न उन दो तरीकों में से किसी में भी जटिलता को कम नहीं कर सकता है, तो इसका कोई भी उपयोग न करें; यह किसी भी तरह का कोई मूल्य नहीं जोड़ेगा।

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