"हाय, अमिगो!"

"हाय, बिलाबो!"

"तुम्ही आधीच एक ठोस प्रोग्रामर आहात. म्हणून, आज आम्ही MVC वर एक धडा घेणार आहोत."

"MVC म्हणजे मॉडेलव्ह्यूकंट्रोलर . मोठ्या अॅप्लिकेशन्ससाठी हा एक आर्किटेक्चरल डिझाइन पॅटर्न आहे, जिथे अॅप्लिकेशन तीन भागांमध्ये विभागले गेले आहे."

"पहिल्या भागात ऍप्लिकेशनचे सर्व बिझनेस लॉजिक समाविष्ट आहे. या भागाला मॉडेल म्हणतात . त्यात कोड आहे जो ऍप्लिकेशन तयार केलेल्या सर्व गोष्टी करतो. हा भाग इतरांवर कमीत कमी अवलंबून असतो."

"दुसऱ्या भागात वापरकर्त्याला डेटा दाखवण्याशी संबंधित सर्व काही समाविष्ट आहे. या भागाला दृश्य म्हणतात . त्यात विंडो, पृष्ठे, संदेश इत्यादी प्रदर्शित करण्यावर नियंत्रण ठेवणारा कोड आहे."

"तिसऱ्या भागात वापरकर्त्याच्या क्रियांवर प्रक्रिया करणारा कोड आहे . मॉडेल बदलण्याच्या उद्देशाने वापरकर्त्याच्या कोणत्याही कृती येथे हाताळल्या पाहिजेत. या भागाला कंट्रोलर म्हणतात   ."

"हा दृष्टिकोन तुम्हाला स्वतंत्रपणे तीन गोष्टी तयार करण्यास अनुमती देतो:  प्रोग्रामचे तर्कशास्त्र (मॉडेल) , वापरकर्त्याला प्रोग्रामचा डेटा प्रदर्शित करण्याची यंत्रणा (दृश्य) आणि वापरकर्ता इनपुट/क्रियांसाठी हँडलर (नियंत्रक) ."

"अॅप्लिकेशन्सना वारंवार अनेक दृश्ये असतात . हे सामान्य आहे. तुम्ही एक्सेलमध्ये संख्या आणि आकृती दोन्ही सारखाच डेटा पाहू शकता. गेममध्ये, तुम्ही प्रथम-व्यक्ती, तृतीय-व्यक्ती किंवा नकाशा दृश्य, तसेच इतर अनेक इव्हेंट पाहू शकता हे सर्व एकाच मॉडेलसाठी भिन्न दृश्ये आहेत ."

"वापरकर्त्याच्या क्रियांच्या प्रतिसादात मॉडेलमध्ये काय बदलायचे हे ठरवणारे सर्व कोड कंट्रोलरमध्ये एकत्र केले जातात . उदाहरणार्थ, जर वापरकर्त्याने प्रोग्राम बंद करण्याचा निर्णय घेतला, तर तुम्हाला मॉडेलचा डेटा डिस्कवरील फाइलमध्ये सेव्ह करणे आवश्यक आहे. किंवा जर वापरकर्त्याने नवीन डेटा प्रविष्ट केला, तर तुम्हाला तो मॉडेलमध्ये जोडण्याची आवश्यकता आहे. मॉडेल नंतर डेटा बदलांबद्दल सर्व दृश्यांना सूचित करेल, त्यामुळे ते केवळ डेटाची वर्तमान स्थिती प्रदर्शित करतात."

"ते परत सांग."

"जावा विकसकाच्या दृष्टीकोनातून, आम्ही असे म्हणू शकतो की मॉडेल, दृश्य आणि नियंत्रक हे तीन वर्गांचे गट आहेत जेथे:"

" अ)  प्रत्येक भागाचा स्वतःचा उद्देश आहे;"

" ब)  एकाच गटातील वर्गांमधील संबंध खूप मजबूत आहेत;"

" क)  गटांमधील संबंध खूप कमकुवत आहेत;"

" d)  भाग एकमेकांशी संवाद साधण्याचे मार्ग जोरदारपणे नियंत्रित केले जातात."

"आणि ते चित्रित करण्याचा दुसरा मार्ग येथे आहे:

MVC - १

"मॉडेल हा प्रणालीचा सर्वात स्वतंत्र भाग आहे . ते दृश्य किंवा नियंत्रकावर अवलंबून नाही. मॉडेल दृश्य किंवा नियंत्रक गट(!) मधील वर्ग वापरू शकत नाही."

"दृश्याची प्राथमिक मर्यादा अशी आहे की ते मॉडेल बदलू शकत नाही . दृश्य वर्ग मॉडेलमध्ये डेटासाठी किंवा इव्हेंटची सदस्यता घेण्यासाठी प्रवेश करू शकतात, परंतु दृश्य वर्ग मॉडेल बदलू शकत नाहीत."

"कंट्रोलरची प्राथमिक मर्यादा ही आहे की तो डेटा प्रदर्शित करत नाही . कंट्रोलर वापरकर्त्याच्या क्रियांवर प्रक्रिया करतो आणि त्यानुसार मॉडेलमध्ये बदल करतो."

"पण मला याची गरज का आहे?"

"तुम्ही हे आत्ता वापरत नाही याचा अर्थ असा नाही की तुम्ही नजीकच्या भविष्यात याचा वापर करणार नाही. तुम्ही इथे नोकरी मिळवण्यासाठी अभ्यास करत आहात. आणि जरी हे ज्ञान उपयोगी नसले तरीही अभ्यास करताना, काम करताना ते नक्कीच उपयोगी पडेल."

"अखेर, वास्तविक प्रकल्प आणि मुलाखती अजूनही तुमची वाट पाहत आहेत ..."

"आम्ही इथे एकत्र बोलत आहोत, पण कदाचित एका महिन्यात तुम्ही आधीच काम करत असाल."

"बिलाबो, तू अगदी बरोबर आहेस. मी तुझे ऐकून घेईन."

"अॅप्लिकेशन आर्किटेक्चरमध्ये MVC पॅटर्न अतिशय सामान्य आहे. तुम्हाला ते माहित असणे आवश्यक आहे, जेणेकरून तुम्ही मॉडेलमध्ये अचानक व्ह्यू क्लासेस जोडणे सुरू करू नका कारण तुम्हाला तो मार्ग अधिक सोयीचा वाटतो."

"कोणत्याही प्रकल्पातील सर्वात महत्त्वाची गोष्ट म्हणजे त्याची वास्तुकला.  या टप्प्यावर तुमचे काम एखादे चांगले वास्तू तयार करण्यात सक्षम होण्याइतके नाही, कारण ते इतर कोणाचे तरी समजून घेणे शिकणे आहे. तुम्हाला अजून वाढण्याची गरज आहे. तुम्ही तुमचे स्वतःचे बनवण्याआधी दोन वर्षे. पण इतरांनी काय निर्माण केले आहे हे तुम्हाला लगेच समजले पाहिजे.

"जेव्हा एखादे अॅप्लिकेशन मानक आर्किटेक्चर वापरते, तेव्हा सर्व काही अधिक स्पष्ट होते. आर्किटेक्चर जाणून घेतल्यास, गोष्टी कुठे आहेत, सर्वकाही कसे संवाद साधते, प्रोग्राम कसा कार्य करतो, आवश्यक वर्ग कोठे जोडायचा आणि कारणे कोठे शोधायची हे तुम्हाला कळते. किडा."

"परंतु, जर तुम्हाला वास्तुकलेच्या मानक पद्धतींबद्दल माहिती नसेल, तर उत्तम वास्तुशास्त्रही तुम्हाला काही सांगणार नाही. तुम्ही नवीन कार पाहणाऱ्या मध्यमवयीन शेतकरी सारखे व्हाल. एक मानक कार."

"मी बघतो. मनोरंजक धड्याबद्दल धन्यवाद, बिलाबो."

"शेवटी, येथे एक चांगला दुवा आहे जो आपण निश्चितपणे तपासला पाहिजे:"

अतिरिक्त साहित्याचा दुवा