MVC Archiउदाहरणों सहित संरचना और ढांचा

⚡ स्मार्ट सारांश

मॉडल-व्यू-कंट्रोलर (एमवीसी) एक आर्किटेक्चरल पैटर्न है जो किसी एप्लिकेशन को तीन घटकों - मॉडल, व्यू और कंट्रोलर - में विभाजित करता है, जिससे व्यावसायिक तर्क को प्रस्तुति परत से अलग किया जा सकता है और स्प्रिंग, जैंगो और लारवेल जैसे फ्रेमवर्क का उपयोग करके रखरखाव योग्य, परीक्षण योग्य वेब और डेस्कटॉप एप्लिकेशन बनाए जा सकते हैं।

  • 🧱 तीन घटक: MVC किसी एप्लिकेशन को मॉडल (डेटा), व्यू (प्रस्तुति) और कंट्रोलर (उपयोगकर्ता इंटरैक्शन) में विभाजित करता है।
  • आदर्श: यह डेटा और व्यावसायिक तर्क को संग्रहीत करता है, व्यू से प्राप्त अनुरोधों और कंट्रोलर से प्राप्त निर्देशों का जवाब देता है।
  • 🖼️ राय: यह टेक्स्ट बॉक्स, ड्रॉप-डाउन, चार्ट और टेबल जैसे यूआई तत्वों के माध्यम से उपयोगकर्ता को डेटा प्रस्तुत करता है।
  • 🎮 नियंत्रक: यह उपयोगकर्ता द्वारा दिए गए इनपुट की व्याख्या करता है, फिर तदनुसार मॉडल और व्यू को अपडेट करता है।
  • ⚙️ लोकप्रिय फ्रेमवर्क: स्प्रिंग एमवीसी, जैंगो, रूबी ऑन रेल्स, केकपीएचपी, लारवेल, और CodeIgniter MVC पैटर्न को लागू करता है।
  • लाभ बनाम हानियाँ: MVC परीक्षण क्षमता और समानांतर विकास में सुधार करता है लेकिन कुछ कमियां भी जोड़ता है।tracसंचार परतें और नेविगेशन जटिलता।

MVC Archiसंरचना और ढांचा

एमवीसी फ्रेमवर्क क्या है?

RSI मॉडल-व्यू-नियंत्रक (एमवीसी) फ्रेमवर्क एक आर्किटेक्चरल पैटर्न है जो किसी एप्लिकेशन को तीन मुख्य तार्किक घटकों मॉडल, व्यू और कंट्रोलर में विभाजित करता है। इसलिए इसका संक्षिप्त नाम MVC है। प्रत्येक आर्किटेक्चर घटक किसी एप्लिकेशन के विशिष्ट विकास पहलू को संभालने के लिए बनाया गया है। MVC व्यवसाय तर्क और प्रस्तुति परत को एक दूसरे से अलग करता है। इसे पारंपरिक रूप से डेस्कटॉप ग्राफिकल यूजर इंटरफेस (GUI) के लिए इस्तेमाल किया जाता था। आजकल, वेब तकनीक में MVC आर्किटेक्चर वेब एप्लिकेशन के साथ-साथ मोबाइल ऐप डिज़ाइन करने के लिए लोकप्रिय हो गया है।

एमवीसी का इतिहास

  • MVC आर्किटेक्चर पर पहली बार 1979 में ट्रिग्वे रेन्सकॉग द्वारा चर्चा की गई थी
  • एमवीसी मॉडल को पहली बार 1987 में स्मॉलटॉक प्रोग्रामिंग भाषा में पेश किया गया था।
  • एमवीसी को पहली बार 1988 के एक लेख में एक सामान्य अवधारणा के रूप में स्वीकार किया गया था
  • हाल के समय में, MVC पैटर्न का उपयोग आधुनिक वेब अनुप्रयोगों में व्यापक रूप से किया जाता है।

एमवीसी की विशेषताएं

  • आसान और घर्षण रहित परीक्षण योग्यता। अत्यधिक परीक्षण योग्य, विस्तार योग्य और प्लग करने योग्य फ्रेमवर्क
  • MVC पैटर्न का उपयोग करके वेब एप्लिकेशन आर्किटेक्चर को डिज़ाइन करने के लिए, यह आपको अपने HTML के साथ-साथ अपने कोड पर भी पूर्ण नियंत्रण प्रदान करता है। URLs
  • ASP.NET, JSP, Django आदि द्वारा प्रदान की गई मौजूदा सुविधाओं का लाभ उठाएं।
  • तर्क का स्पष्ट पृथक्करण: मॉडल, दृश्य, नियंत्रक। अनुप्रयोग कार्यों का पृथक्करण अर्थात व्यावसायिक तर्क, Ul तर्क और इनपुट तर्क
  • URL एसईओ अनुकूल रूटिंग URLशक्तिशाली URL-नक्शाping समझने योग्य और खोजने योग्य के लिए URLs
  • टेस्ट ड्रिवेन डेवलपमेंट (TDD) के लिए समर्थन

MVC Archiटेक्चर

अब जबकि इसके लाभ स्पष्ट हो चुके हैं, तो यहाँ एमवीसी फ्रेमवर्क की विस्तृत संरचना दी गई है:

MVC Archiटेक्चर
MVC Archiटेक्चर आरेख

तीन महत्वपूर्ण MVC घटक हैं:

  • मॉडल: इसमें सभी डेटा और उससे संबंधित तर्क शामिल हैं
  • दृश्य: उपयोगकर्ता को डेटा प्रस्तुत करना या उपयोगकर्ता इंटरैक्शन को संभालना
  • नियंत्रक: मॉडल और दृश्य घटकों के बीच एक इंटरफ़ेस

आइए इन सभी घटकों को विस्तार से देखें:

देखें

दृश्य अनुप्रयोग का वह भाग है जो डेटा की प्रस्तुति को दर्शाता है।

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

यह दृश्य चार्ट, आरेख और तालिकाओं से डेटा भी दर्शाता है। उदाहरण के लिए, किसी भी ग्राहक दृश्य में टेक्स्ट बॉक्स, ड्रॉप डाउन आदि जैसे सभी UI घटक शामिल होंगे।

नियंत्रक

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

कंट्रोलर मॉडल को उसकी स्थिति अपडेट करने के लिए कमांड भेजता है (उदाहरण के लिए, किसी विशिष्ट दस्तावेज़ को सहेजना)। कंट्रोलर अपने संबंधित व्यू को व्यू की प्रस्तुति बदलने के लिए भी कमांड भेजता है (उदाहरण के लिए, किसी विशेष दस्तावेज़ को स्क्रॉल करना)।

आदर्श

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

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

एमवीसी उदाहरण

आइए दैनिक जीवन से मॉडल व्यू कंट्रोलर का उदाहरण देखें:

उदाहरण 1

एमवीसी उदाहरण

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

इस MVC आर्किटेक्चर उदाहरण में,

View= You
Waiter= Controller
Cook= Model
Refrigerator= Data

आइये एक और MVC मॉडल उदाहरण देखें,

उदाहरण 2

एमवीसी उदाहरण

कार ड्राइविंग तंत्र एमवीसी मॉडल का एक और उदाहरण है।

  • हर कार में तीन मुख्य भाग होते हैं।
  • दृश्य: उपयोगकर्ता इंटरफ़ेस: (गियर लीवर, पैनल, स्टीयरिंग व्हील, ब्रेक, आदि)
  • नियंत्रक- तंत्र (इंजन)
  • मॉडल- स्टोरेज (पेट्रोल या डीजल टैंक)

कार इंजन से चलती है, भंडारण से ईंधन लेती है, लेकिन यह केवल उल्लिखित उपयोगकर्ता इंटरफ़ेस उपकरणों का उपयोग करके चलती है।

लोकप्रिय MVC वेब फ्रेमवर्क

यहां कुछ लोकप्रिय MVC फ्रेमवर्क की सूची दी गई है:

एमवीसी के लाभ: मुख्य लाभ

MVC आर्किटेक्चर का उपयोग करने के प्रमुख लाभ इस प्रकार हैं:

  • आसान कोड रखरखाव जिसे विस्तारित करना और विकसित करना आसान है
  • MVC मॉडल घटक का परीक्षण उपयोगकर्ता से अलग से किया जा सकता है
  • नए प्रकार के ग्राहकों के लिए आसान समर्थन
  • विभिन्न घटकों का विकास समानांतर रूप से किया जा सकता है।
  • यह आपको किसी एप्लिकेशन को तीन इकाइयों में विभाजित करके जटिलता से बचने में मदद करता है। मॉडल, दृश्य और नियंत्रक
  • यह केवल फ्रंट कंट्रोलर पैटर्न का उपयोग करता है जो एकल नियंत्रक के माध्यम से वेब अनुप्रयोग अनुरोधों को संसाधित करता है।
  • के लिए सर्वोत्तम समर्थन प्रदान करता है परीक्षण संचालित विकास
  • यह उन वेब ऐप्स के लिए अच्छा काम करता है जो वेब डिज़ाइनरों और डेवलपर्स की बड़ी टीमों द्वारा समर्थित होते हैं।
  • चिंताओं का स्पष्ट पृथक्करण (SoC) प्रदान करता है।
  • खोज इंजन अनुकूलन (एसईओ) अनुकूल.
  • सभी वर्ग और ऑब्जेक्ट एक दूसरे से स्वतंत्र हैं ताकि आप उनका अलग-अलग परीक्षण कर सकें।
  • MVC डिज़ाइन पैटर्न तार्किक समूहों की अनुमति देता है।ping नियंत्रक पर संबंधित कार्यों को एक साथ करना।

एम.वी.सी. का उपयोग करने के नुकसान

  • इस मॉडल को पढ़ना, बदलना, यूनिट परीक्षण करना और पुनः उपयोग करना कठिन है
  • इस फ्रेमवर्क का नेविगेशन कभी-कभी जटिल हो सकता है क्योंकि यह एब्सोल्यूट डेटा की नई परतें पेश करता है।tracयह एक ऐसा चरण है जिसमें उपयोगकर्ताओं को एमवीसी के विघटन मानदंडों के अनुरूप ढलना पड़ता है।
  • कोई औपचारिक सत्यापन समर्थन नहीं
  • डेटा की जटिलता और अकुशलता में वृद्धि
  • आधुनिक उपयोगकर्ता इंटरफ़ेस के साथ MVC का उपयोग करने की कठिनाई
  • समानांतर प्रोग्रामिंग करने के लिए कई प्रोग्रामर्स की आवश्यकता होती है।
  • अनेक प्रौद्योगिकियों का ज्ञान आवश्यक है।
  • नियंत्रक में बहुत सारे कोडों का रखरखाव

3 स्तरीय Archiटेक्चर बनाम एमवीसी Archiटेक्चर

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

अक्सर पूछे जाने वाले प्रश्न

MVC एक आर्किटेक्चरल पैटर्न है, न कि केवल एक साधारण डिज़ाइन पैटर्न। यह पूरे एप्लिकेशन को मॉडल, व्यू और कंट्रोलर लेयर्स में व्यवस्थित करता है, जिससे डेटा, प्रेजेंटेशन और यूजर-इंटरैक्शन लॉजिक अलग-अलग हो जाते हैं।

MVC इनपुट को संभालने और मॉडल और व्यू को अपडेट करने के लिए कंट्रोलर का उपयोग करता है, जबकि MVVM डेटा बाइंडिंग के साथ व्यूमॉडल का उपयोग करता है। MVVM अनावश्यक कोड को कम करता है और आधुनिक UI फ्रेमवर्क में आम है।

ऐसे एप्लिकेशन बनाते समय MVC का उपयोग करें जिनमें डेटा, UI और लॉजिक का स्पष्ट पृथक्करण आवश्यक हो, विशेष रूप से बड़ी टीमों द्वारा प्रबंधित वेब एप्लिकेशन में। यह परीक्षण क्षमता, समानांतर विकास और SEO-अनुकूल रूटिंग को बेहतर बनाता है।

एमवीसी एप्लिकेशन के मॉडल या सर्विस लेयर में आमतौर पर एआई फीचर्स जोड़े जाते हैं। कंट्रोलर यूजर इनपुट को एआई मॉडल तक पहुंचाता है, और व्यू यूजर्स को भविष्यवाणियां, सुझाव या जनरेटेड कंटेंट दिखाता है।

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

इस पोस्ट को संक्षेप में इस प्रकार लिखें: