अगर मैं सही तरीके से समझूं, तो इसका मतलब यह है कि डिज़ाइन पैटर्न का उपयोग न करें जब तक कि ऐसा करने के लिए समझ में न आए, सही?
हाँ।
यह कहना शुरू न करें कि आप रणनीति पैटर्न का उपयोग करने जा रहे हैं, तब तक प्रतीक्षा करें जब तक आप कुछ कोड नहीं लिखते हैं, और यदि रणनीति पैटर्न का उपयोग करना आपके डिजाइन के लिए समझ में आता है, तो इसका उपयोग करें।
हाँ। तकनीकी रूप से, आप महसूस कर सकते हैं कि किसी भी कोड को लिखने से पहले रणनीति का पैटर्न उपयुक्त है, लेकिन ऐसा इसलिए होना चाहिए क्योंकि आप वास्तविक समस्या के बारे में सोच रहे थे और उस समस्या के लिए एक समाधान तैयार कर रहे थे, जो मुझे लगता है कि आपका मतलब है।
जब मैं GUI एप्लिकेशन बनाता हूं तो क्या मैं MCV / MVP पैटर्न का व्यवहार करता हूं? संबंधित लिंक से, यह कहता है कि यह एक वास्तुशिल्प पैटर्न है।
हां, MVC / MVP / etc वास्तु पैटर्न हैं। एक अर्थ में, इससे कोई फर्क नहीं पड़ता क्योंकि आपको अभी भी केवल एमवीसी / एमवीपी / आदि का उपयोग करना चाहिए जब वे समझ में आते हैं; जब आप इसे हल करने की कोशिश कर रहे हैं वास्तविक समस्या के लिए एक उचित फिट है। जहां इससे कोई फर्क पड़ता है, वह यह है, क्योंकि यह रणनीति के पैटर्न की तुलना में बहुत अधिक स्तर पर लागू होता है, तो आप आमतौर पर यह पता लगाएंगे कि यह समझ में आता है या नहीं और यह तय करें कि क्या आप इसका उपयोग करने जा रहे हैं आपके डिजाइन का काम, बहुत सारे कोड लिखने से पहले।
यह भी ध्यान रखें कि "एमवीसी / एमवीपी" एक एकल पैटर्न नहीं है, बल्कि संबंधित पैटर्न का एक बहुत बड़ा परिवार है, और इस बात पर कोई सहमति नहीं है कि वास्तव में "एमवीसी" या "एमवीपी" या "एमवीवीएम" या बाकी के रूप में क्या मायने रखता है। संबद्ध वर्णमाला सूप।
मान लीजिए अगर मैं एक GUI एप्लिकेशन बनाता हूं और मैं MCV / MVP पैटर्न का उपयोग नहीं करता हूं, लेकिन मेरा कोड साफ, पढ़ने योग्य और बनाए रखने योग्य है, तो क्या यह अभी भी एक कोड गंध / खराब डिज़ाइन है जिसे मैंने MCV / MVP पैटर्न का उपयोग नहीं किया है ?
बिल्कुल नहीं, क्योंकि MVC / MVP / etc हर GUI एप्लिकेशन के लिए सही नहीं हैं। उदाहरण के लिए, कुछ GUI इतने सरल हो सकते हैं कि यह पूरी तरह से ओवरकिल हो जाएगा, या कुछ GUI को "मॉडल" में डालने के लिए कोई लगातार राज्य नहीं हो सकता है, आदि अच्छे कारण हैं कि पैटर्न का परिवार इतना लोकप्रिय है, लेकिन वे अच्छा GUI सॉफ्टवेयर लिखने का एकमात्र तरीका नहीं है।
इसके अलावा, एक "कोड गंध" का मतलब आमतौर पर कोड के एक विशिष्ट स्निपेट के बारे में होता है जो एक बड़ी समस्या का लक्षण हो सकता है। यदि आपका कोई भी कोड बिना किसी अपवाद के "साफ, पढ़ने योग्य और बनाए रखने योग्य" है, तो परिभाषा के अनुसार, आपके पास लगभग कोई कोड गंध नहीं है (सिवाय शायद कुछ "झूठे सकारात्मक" कोड से बदबू आती है जो किसी भी वास्तविक समस्या का संकेत नहीं देते हैं )।
तो आपके प्रश्न के शीर्षक का उत्तर देने के लिए: "एमवीसी / एमवीपी पैटर्न का इलाज कैसे करें?", मैं कहूंगा: इस बारे में पढ़ें कि वे पैटर्न इतने लोकप्रिय क्यों हैं, अर्थात वे किन समस्याओं को हल करने की कोशिश कर रहे हैं, ताकि भविष्य में आप बता सकते हैं कि क्या आपकी नवीनतम समस्या उन पैटर्न द्वारा हल की जा सकती है।