"हाय, अमीगो!"
"हाय, बिलाबो!"
"आप पहले से ही एक ठोस प्रोग्रामर हैं। इसलिए, आज हम एमवीसी पर एक पाठ पढ़ाने जा रहे हैं।"
"एमवीसी मॉडल - व्यू - कंट्रोलर के लिए खड़ा है । यह बड़े अनुप्रयोगों के लिए एक आर्किटेक्चरल डिज़ाइन पैटर्न है, जहां एप्लिकेशन को तीन भागों में विभाजित किया गया है।"
"पहले भाग में एप्लिकेशन के सभी व्यावसायिक तर्क शामिल हैं । इस भाग को मॉडल कहा जाता है। इसमें वह कोड होता है जो वह सब कुछ करता है जिसे करने के लिए एप्लिकेशन बनाया गया था। यह हिस्सा दूसरों पर सबसे कम निर्भर है।"
"दूसरे भाग में उपयोगकर्ता को डेटा प्रदर्शित करने से संबंधित सब कुछ शामिल है । इस भाग को दृश्य कहा जाता है । इसमें वह कोड होता है जो विंडोज़, पेज, संदेशों आदि को प्रदर्शित करने को नियंत्रित करता है।"
"तीसरे भाग में वह कोड होता है जो उपयोगकर्ता क्रियाओं को संसाधित करता है । मॉडल को बदलने के इरादे से किए गए किसी भी उपयोगकर्ता कार्यों को यहां नियंत्रित किया जाना चाहिए। इस भाग को नियंत्रक कहा जाता है ।"
"यह दृष्टिकोण आपको तीन चीजों को स्वतंत्र रूप से बनाने की अनुमति देता है: प्रोग्राम का तर्क (मॉडल) , उपयोगकर्ता को प्रोग्राम के डेटा को प्रदर्शित करने के लिए तंत्र (दृश्य) , और उपयोगकर्ता इनपुट/क्रियाओं (नियंत्रक) के लिए एक हैंडलर ।"
"एप्लिकेशन में अक्सर कई दृश्य होते हैं। यह सामान्य है। आप एक्सेल में सटीक डेटा को संख्याओं और आरेखों दोनों के रूप में देख सकते हैं। खेलों में, आप पहले व्यक्ति, तीसरे व्यक्ति, या मानचित्र दृश्य, और कई अन्य लोगों से ईवेंट देख सकते हैं। ये सभी एक मॉडल के लिए अलग-अलग विचार हैं ।"
"सभी कोड जो यह तय करते हैं कि उपयोगकर्ता क्रियाओं के जवाब में मॉडल में क्या बदलना है, नियंत्रक में इकट्ठा किया जाता है। उदाहरण के लिए, यदि उपयोगकर्ता प्रोग्राम को बंद करने का निर्णय लेता है, तो आपको डिस्क पर फ़ाइल में मॉडल के डेटा को सहेजने की आवश्यकता होती है। या यदि उपयोगकर्ता नया डेटा दर्ज करता है, तो आपको इसे मॉडल में जोड़ने की आवश्यकता है। मॉडल तब डेटा परिवर्तन के बारे में सभी विचारों को सूचित करेगा, इसलिए वे केवल डेटा की वर्तमान स्थिति प्रदर्शित करते हैं।"
"दोबारा कहना।"
"जावा डेवलपर के दृष्टिकोण से, हम कह सकते हैं कि मॉडल, दृश्य और नियंत्रक वर्गों के तीन समूह हैं जहां:"
" ए) प्रत्येक भाग का अपना उद्देश्य होता है;"
" बी) एक समूह के वर्गों के बीच संबंध बहुत मजबूत हैं;"
" सी) समूहों के बीच संबंध बहुत कमजोर हैं;"
" डी) जिस तरह से भागों एक दूसरे के साथ संवाद करते हैं वे अत्यधिक विनियमित होते हैं।"
"और यहाँ इसे चित्रित करने का एक और तरीका है:
"मॉडल सिस्टम का सबसे स्वतंत्र हिस्सा है । यह दृश्य या नियंत्रक पर निर्भर नहीं करता है। मॉडल दृश्य या नियंत्रक समूहों (!) से कक्षाओं का उपयोग नहीं कर सकता है।"
"दृश्य की प्राथमिक सीमा यह है कि यह मॉडल को नहीं बदल सकता है । देखें कक्षाएं डेटा के लिए मॉडल तक पहुंच सकती हैं या घटनाओं की सदस्यता ले सकती हैं, लेकिन देखें कक्षाएं मॉडल को नहीं बदल सकती हैं।"
"नियंत्रक की प्राथमिक सीमा यह है कि यह डेटा प्रदर्शित नहीं करता है । नियंत्रक उपयोगकर्ता क्रियाओं को संसाधित करता है और तदनुसार मॉडल को संशोधित करता है।"
"लेकिन मुझे इसकी आवश्यकता क्यों है?"
"तथ्य यह है कि आप अभी इसका उपयोग नहीं करते हैं, इसका मतलब यह नहीं है कि आप निकट भविष्य में इसका उपयोग नहीं करेंगे। आप यहां नौकरी पाने के लिए अध्ययन कर रहे हैं। और भले ही यह ज्ञान आपके लिए उपयोगी साबित न हो।" पढ़ना, काम करते समय यह निश्चित रूप से काम आएगा।"
"आखिरकार, वास्तविक परियोजनाएँ और साक्षात्कार अभी भी आपका इंतजार कर रहे हैं ..."
"अब हम यहां एक साथ बात कर रहे हैं, लेकिन शायद एक महीने में आप पहले से ही काम कर रहे होंगे।"
"आप बिल्कुल सही कह रहे हैं, बिलाबो। मैं आपकी बात ध्यान से सुनूंगा।"
"एप्लिकेशन आर्किटेक्चर में एमवीसी पैटर्न बहुत आम है। आपको इसे जानने की जरूरत है, ताकि आप अचानक मॉडल में व्यू क्लास जोड़ना शुरू न करें क्योंकि आपको यह तरीका अधिक सुविधाजनक लगता है।"
"किसी भी प्रोजेक्ट में सबसे महत्वपूर्ण चीज उसका आर्किटेक्चर है। इस स्तर पर आपका काम एक अच्छा आर्किटेक्चर बनाने में सक्षम होना इतना अधिक नहीं है, जितना कि किसी और के आर्किटेक्चर को समझना सीखना है। आपको अभी भी एक के लिए बढ़ने की आवश्यकता होगी। अपना खुद का निर्माण करने से पहले कुछ साल। लेकिन आपको यह समझने की जरूरत है कि दूसरे लोगों ने क्या बनाया है। अभी।"
"जब कोई एप्लिकेशन एक मानक आर्किटेक्चर का उपयोग करता है, तो सब कुछ बहुत स्पष्ट हो जाता है। आर्किटेक्चर को जानने से, आप जानते हैं कि चीजें कहां हैं, सब कुछ कैसे इंटरैक्ट करता है, मोटे तौर पर प्रोग्राम कैसे काम करता है, एक आवश्यक वर्ग कहां जोड़ना है, और कहां कारण खोजना है एक दोष।"
"लेकिन, यदि आप वास्तुकला के मानक दृष्टिकोण से परिचित नहीं हैं, तो सबसे अच्छी वास्तुकला भी आपको कुछ नहीं बताएगी। आप मध्य युग के एक किसान की तरह होंगे जो एक नई कार देख रहे हैं। एक मानक कार।"
"समझ गया। दिलचस्प पाठ के लिए धन्यवाद, बिलाबो।"
"अंत में, यहाँ एक अच्छा लिंक है जिसे आपको निश्चित रूप से देखना चाहिए:"
GO TO FULL VERSION