मैं पीईजीटीके में डेस्कटॉप एप्लिकेशन पर काम कर रहा हूं और मेरे फ़ाइल संगठन की कुछ सीमाओं के खिलाफ बंपिंग प्रतीत होता हूं। इस प्रकार अब तक मैं अपने प्रोजेक्ट इस तरह से संरचित है:मैं पीईजीटीके डेस्कटॉप एप्लिकेशन के लिए सुसंगत रूप से मॉड्यूल कैसे व्यवस्थित करूं?
- application.py - प्राथमिक आवेदन वर्ग (सबसे कार्यात्मक दिनचर्या)
- gui.py रखती है - एक शिथिल युग्मित जीटीके जीयूआई कार्यान्वयन रखती है। संकेत कॉलबैक, आदि संभालती
- command.py - कमांड लाइन स्वचालन कार्यों आवेदन कक्षा में डेटा पर निर्भर नहीं रखती
- state.py - राज्य डेटा हठ वर्ग
यह काफी अच्छी तरह से सेवा की है रखती है अभी तक, लेकिन इस बिंदु पर application.py को लंबा होना शुरू हो रहा है। मैंने कई अन्य पीजीजीटीके अनुप्रयोगों को देखा है और उनके पास समान संरचनात्मक मुद्दे हैं। एक निश्चित बिंदु पर प्राथमिक मॉड्यूल बहुत लंबा हो जाता है और स्पष्टता और ऑब्जेक्ट ओरिएंटेशन बलि किए बिना कोडर मॉड्यूल में कोड को तोड़ने का स्पष्ट तरीका नहीं है।
मैंने जीयूआई को प्राथमिक मॉड्यूल बनाने और टूलबार रूटीन, मेन्यू रूटीन इत्यादि के लिए अलग मॉड्यूल बनाने पर विचार किया है, लेकिन उस समय मुझे विश्वास है कि मैं ओओपी के अधिकांश लाभ खो दूंगा और सब कुछ खत्म कर दूंगा- संदर्भ-सब कुछ परिदृश्य।
क्या मुझे बस एक बहुत लंबा केंद्रीय मॉड्यूल होने का सौदा करना चाहिए या क्या इस परियोजना को संरचित करने का एक बेहतर तरीका है ताकि मुझे कक्षा ब्राउज़र पर भरोसा न करें?
संपादित मैं
ठीक है, तो बात सब MVC सामान के बारे में ले लिया। मेरे पास मेरे कोड में एमवीसी का मोटा अनुमान है, लेकिन स्वीकार्य रूप से मैं मॉडल और नियंत्रक को और अलग करके कुछ लाभ प्राप्त कर सकता हूं। हालांकि, मैं अजगर-gtkmvc के दस्तावेज़ों पर पढ़ रहा हूं (जिस तरह से एक महान खोज है, इसे संदर्भित करने के लिए धन्यवाद) और मेरी धारणा यह है कि यह मेरी समस्या को हल करने के लिए इतना औपचारिक रूप से हल नहीं करेगा। मेरा आवेदन एक एकल छाया फ़ाइल है, आमतौर पर एक खिड़की। तो इससे कोई फर्क नहीं पड़ता कि मैं मॉड्यूल की एमवीसी भूमिकाओं को कितनी कड़ाई से परिभाषित करता हूं, मुझे अभी भी एक कंट्रोलर मॉड्यूल होने की ज़रूरत है, जो कि अब सब कुछ कर रहा है, जो अब मेरे पास काफी है। माना जाता है कि मैं उचित एमवीसी कार्यान्वयन पर थोड़ा अस्पष्ट हूं और मैं शोध रखने जा रहा हूं, लेकिन यह मुझे नहीं देखता है कि इस वास्तुकला को मेरी मुख्य फाइल से और अधिक सामान मिल जाएगा, यह सिर्फ उस नाम का नाम बदलने जा रहा है नियंत्रक को फ़ाइल करें।
क्या मुझे खिड़की के अलग-अलग हिस्सों (टूलबार, मेनू, आदि) के लिए अलग नियंत्रक/दृश्य जोड़े के बारे में सोचना चाहिए? शायद यही वह है जो मैं यहां लापता हूं। ऐसा लगता है कि एस लॉट अपने दूसरे बुलेट प्वाइंट में इसका जिक्र कर रहा है।
अब तक प्रतिक्रियाओं के लिए धन्यवाद।