ही सामग्री "एंटरप्राइज डेव्हलपमेंटची ओळख" मालिकेचा भाग आहे. मागील लेख:
- नेटवर्किंग बद्दल
- सॉफ्टवेअर आर्किटेक्चर बद्दल
- HTTP/HTTPS बद्दल
- मावेनच्या मूलभूत गोष्टींबद्दल
- सर्व्हलेट्सबद्दल (एक साधा वेब अनुप्रयोग लिहिणे)
- सर्वलेट कंटेनर बद्दल
MVC चा इतिहास
1970 च्या दशकाच्या उत्तरार्धात झेरॉक्स PARC मध्ये काम करत असताना Trygve Reenskaug यांनी MVC च्या मागे असलेल्या कल्पना तयार केल्या होत्या. त्या काळात, संगणकावर काम करण्यासाठी पदवी आणि विपुल कागदपत्रांचा सतत अभ्यास आवश्यक होता. Reenskaug ने अतिशय मजबूत विकासकांच्या गटासह सोडवलेले कार्य म्हणजे सामान्य वापरकर्त्याचा संगणकाशी संवाद साधणे सोपे करणे. अशी साधने तयार करणे आवश्यक होते जे एकीकडे, अत्यंत साधे आणि समजण्यायोग्य असतील आणि दुसरीकडे, संगणक आणि जटिल अनुप्रयोग नियंत्रित करणे शक्य करेल. रेनस्कॉगने "सर्व वयोगटातील मुलांसाठी" लॅपटॉप संगणक विकसित करणाऱ्या टीमवर काम केले - डायनाबुक, तसेच अॅलन के यांच्या नेतृत्वाखाली स्मॉलटॉक भाषा. तेव्हाच मैत्रीपूर्ण इंटरफेसची संकल्पना मांडण्यात आली होती. अनेक बाबतीत, Reenskaug आणि त्यांच्या टीमने केलेल्या कामाचा IT क्षेत्राच्या उत्क्रांतीवर प्रभाव पडला. येथे एक मनोरंजक तथ्य आहे जे थेट MVC ला लागू होत नाही, परंतु या घडामोडींचे महत्त्व स्पष्ट करते. अॅलन केम्हणाला, "जेव्हा मी पहिल्यांदा ऍपलला गेलो, जे '84 मध्ये होते, तेव्हा मॅक आधीच संपला होता आणि न्यूजवीकने माझ्याशी संपर्क साधला आणि मला मॅकबद्दल काय वाटते ते विचारले. मी म्हणालो, 'ठीक आहे, मॅक हा पहिला वैयक्तिक संगणक आहे. टीका करावी.' म्हणून, 2007 मध्ये आयफोनची घोषणा केल्यानंतर, त्याने तो माझ्याकडे आणला आणि तो माझ्याकडे दिला. तो म्हणाला, 'अॅलन, हे टीका करण्याइतके चांगले आहे का?' आणि मी म्हणालो, 'स्टीव्ह, याला टॅबलेट इतका मोठा आकार द्या आणि तू जगावर राज्य करशील.'" ३ वर्षानंतर, २७ जानेवारी २०१० रोजी, Apple ने ९.७ इंच कर्ण असलेला iPad सादर केला. दुसऱ्या शब्दांत, स्टीव्ह जॉब्सने अॅलन के यांच्या सल्ल्याचे जवळपास तंतोतंत पालन केले. Reenskaug चा प्रकल्प 10 वर्षे चालला. परंतु MVC बद्दलचे पहिले प्रकाशन आणखी 10 वर्षांनी समोर आले. मार्टिन फॉलर, सॉफ्टवेअर आर्किटेक्चरवरील अनेक पुस्तके आणि लेखांचे लेखक, Smalltalk ची कार्यरत आवृत्ती वापरून त्याने MVC चा अभ्यास केल्याचे नमूद केले आहे. कारण मूळ स्त्रोताकडून MVC बद्दल फार काळ माहिती नव्हती, आणि इतर अनेक कारणांमुळे, या संकल्पनेची मोठ्या प्रमाणात भिन्न व्याख्या दिसून आली. परिणामी, अनेकजण MVC ला डिझाइन पॅटर्न मानतात. कमी सामान्यपणे, MVC ला संमिश्र नमुना किंवा जटिल अनुप्रयोग तयार करण्यासाठी एकत्रितपणे कार्य करणार्या अनेक नमुन्यांचे संयोजन म्हणतात. परंतु, आधी सांगितल्याप्रमाणे, MVC हा मुख्यतः वास्तुशास्त्रीय कल्पना/तत्त्वे/पद्धतींचा एक संच आहे ज्याची विविध पद्धती वापरून अंमलबजावणी केली जाऊ शकते... पुढे, आम्ही MVC संकल्पनेमध्ये अंतर्भूत असलेल्या मुख्य कल्पनांचा विचार करू. आणि इतर अनेक कारणांमुळे, या संकल्पनेची मोठ्या प्रमाणात भिन्न व्याख्या दिसून आली. परिणामी, अनेकजण MVC ला डिझाइन पॅटर्न मानतात. कमी सामान्यपणे, MVC ला संमिश्र नमुना किंवा जटिल अनुप्रयोग तयार करण्यासाठी एकत्रितपणे कार्य करणार्या अनेक नमुन्यांचे संयोजन म्हणतात. परंतु, आधी सांगितल्याप्रमाणे, MVC हा मुख्यतः वास्तुशास्त्रीय कल्पना/तत्त्वे/पद्धतींचा एक संच आहे ज्याची विविध पद्धती वापरून अंमलबजावणी केली जाऊ शकते... पुढे, आम्ही MVC संकल्पनेमध्ये अंतर्भूत असलेल्या मुख्य कल्पनांचा विचार करू. आणि इतर अनेक कारणांमुळे, या संकल्पनेची मोठ्या प्रमाणात भिन्न व्याख्या दिसून आली. परिणामी, अनेकजण MVC ला डिझाइन पॅटर्न मानतात. कमी सामान्यपणे, MVC ला संमिश्र नमुना किंवा जटिल अनुप्रयोग तयार करण्यासाठी एकत्रितपणे कार्य करणार्या अनेक नमुन्यांचे संयोजन म्हणतात. परंतु, आधी सांगितल्याप्रमाणे, MVC हा मुख्यतः वास्तुशास्त्रीय कल्पना/तत्त्वे/पद्धतींचा एक संच आहे ज्याची विविध पद्धती वापरून अंमलबजावणी केली जाऊ शकते... पुढे, आम्ही MVC संकल्पनेमध्ये अंतर्भूत असलेल्या मुख्य कल्पनांचा विचार करू.MVC: मूलभूत कल्पना आणि तत्त्वे
- VC हा वापरकर्ता इंटरफेससह जटिल माहिती प्रणाली तयार करण्यासाठी आर्किटेक्चरल कल्पना आणि तत्त्वांचा संच आहे
- MVC हे एक संक्षेप आहे ज्याचा अर्थ आहे: मॉडेल-व्ह्यू-कंट्रोलर
पायरी 1. वापरकर्ता इंटरफेसमधून अनुप्रयोगाचे व्यवसाय तर्क वेगळे करा
MVC ची मुख्य कल्पना अशी आहे की वापरकर्ता इंटरफेस असलेले कोणतेही अनुप्रयोग 2 मॉड्यूलमध्ये विभागले जाऊ शकतात: व्यवसाय तर्क लागू करण्यासाठी जबाबदार मॉड्यूल आणि वापरकर्ता इंटरफेस. प्रथम मॉड्यूल ऍप्लिकेशनच्या मुख्य कार्यक्षमतेची अंमलबजावणी करेल. हे मॉड्यूल सिस्टमचा मुख्य भाग आहे, जिथे अनुप्रयोगाचे डोमेन मॉडेल लागू केले जाते. MVC नमुना मध्ये, हे मॉड्यूल अक्षर M आहे, म्हणजे मॉडेल. दुसरे मॉड्यूल संपूर्ण वापरकर्ता इंटरफेस लागू करते, ज्यामध्ये वापरकर्त्याला डेटा प्रदर्शित करण्यासाठी आणि अनुप्रयोगासह वापरकर्ता परस्परसंवाद हाताळण्यासाठी तर्कशास्त्र समाविष्ट आहे. या पृथक्करणाचे मुख्य उद्दिष्ट हे सुनिश्चित करणे आहे की प्रणालीचा मुख्य भाग (MVC शब्दावलीतील "मॉडेल") स्वतंत्रपणे विकसित आणि चाचणी केली जाऊ शकते. हे पृथक्करण केल्यानंतर, अनुप्रयोगाचे आर्किटेक्चर असे दिसते:पायरी 2 मॉडेल आणखी स्वतंत्र करण्यासाठी आणि वापरकर्ता इंटरफेस समक्रमित करण्यासाठी निरीक्षक नमुना वापरा
येथे आमच्याकडे 2 उद्दिष्टे आहेत:- मॉडेलसाठी आणखी मोठे स्वातंत्र्य मिळवा
- वापरकर्ता इंटरफेस सिंक्रोनाइझ करा
पायरी 3 इंटरफेसला व्ह्यू आणि कंट्रोलरमध्ये वेगळे करा
आम्ही अनुप्रयोगास मॉड्यूलमध्ये विभागणे सुरू ठेवतो, परंतु आता पदानुक्रमात खालच्या स्तरावर आहे. या चरणावर, वापरकर्ता इंटरफेस (ज्याला आम्ही चरण 1 मध्ये एका वेगळ्या मॉड्यूलमध्ये वेगळे केले आहे) दृश्य आणि कंट्रोलरमध्ये विभाजित केले आहे. दृश्य आणि नियंत्रक यांच्यामध्ये कठोर रेषा काढणे कठीण आहे. जर आम्ही असे म्हणतो की वापरकर्त्याला जे दिसते ते दृश्य आहे आणि नियंत्रक ही यंत्रणा आहे जी वापरकर्त्याला सिस्टमशी संवाद साधण्याची परवानगी देते, तर तुम्ही विरोधाभास दर्शवू शकता. नियंत्रण घटक, जसे की वेब पृष्ठावरील बटणे किंवा फोनच्या स्क्रीनवरील व्हर्च्युअल कीबोर्ड, मुळात कंट्रोलरचा भाग असतात. परंतु ते वापरकर्त्याला दृश्याच्या कोणत्याही भागाप्रमाणे दृश्यमान आहेत. आम्ही येथे ज्याबद्दल बोलत आहोत ते कार्यात्मक पृथक्करण आहे. वापरकर्ता इंटरफेसचे मुख्य कार्य म्हणजे वापरकर्त्याचा प्रणालीशी संवाद साधणे सुलभ करणे.- आउटपुट आणि वापरकर्त्यास सिस्टम माहिती सोयीस्करपणे प्रदर्शित करते
- वापरकर्ता डेटा आणि आदेश प्रविष्ट करा (त्यांना सिस्टमशी संप्रेषण करा)
- एमव्हीसी पॅराडाइमच्या तत्त्वांनुसार, सिस्टमला मॉड्यूलमध्ये विभागले जाणे आवश्यक आहे.
- सर्वात महत्वाचे आणि स्वतंत्र मॉड्यूल हे मॉडेल असावे.
- मॉडेल हा प्रणालीचा गाभा आहे. वापरकर्ता इंटरफेसमधून स्वतंत्रपणे विकसित करणे आणि चाचणी करणे शक्य असले पाहिजे.
- हे साध्य करण्यासाठी, विभाजनाच्या पहिल्या चरणात, आम्हाला प्रणालीला मॉडेल आणि वापरकर्ता इंटरफेसमध्ये विभाजित करणे आवश्यक आहे.
- त्यानंतर, निरीक्षक नमुना वापरून, आम्ही मॉडेलचे स्वातंत्र्य वाढवतो आणि वापरकर्ता इंटरफेस सिंक्रोनाइझ करतो.
- तिसरी पायरी म्हणजे यूजर इंटरफेस कंट्रोलर आणि व्ह्यूमध्ये विभाजित करणे.
- सिस्टममध्ये वापरकर्ता डेटा प्राप्त करण्यासाठी आवश्यक असलेले सर्व कंट्रोलरमध्ये आहे.
- वापरकर्त्याला माहिती वितरीत करण्यासाठी जे आवश्यक आहे ते सर्व दृश्यात आहे.
GO TO FULL VERSION