यह एक सामान्य सवाल होने जा रहा है।एक जीयूआई आवेदन व्यवस्थित करना
मैं एक जीयूआई आवेदन, esp डिजाइन करने में संघर्ष कर रहा हूं। विभिन्न भागों के बीच बातचीत के साथ निपटने के साथ।
मुझे नहीं पता कि मुझे साझा राज्य से कैसे निपटना चाहिए। एक तरफ, साझा राज्य खराब है, और चीजों को यथासंभव स्पष्ट होना चाहिए। दूसरी तरफ, साझा राज्य नहीं होने से घटकों के बीच अवांछित युग्मन शुरू होता है।
एक उदाहरण:
मैं अपने आवेदन रास्ते से एक Emacs/विम प्रकार में बढ़ाई होना चाहता हूँ, स्क्रिप्ट के माध्यम से। जाहिर है, कुछ प्रकार के साझा राज्य को संशोधित करने की आवश्यकता है, ताकि जीयूआई इसका इस्तेमाल करे। मेरी प्रारंभिक योजना में वैश्विक "सत्र" था जो हर जगह से सुलभ है, लेकिन मुझे इसके बारे में इतना यकीन नहीं है।
एक मुश्किल उपयोग केस कुंजी बाइंडिंग है। मैं चाहता हूं कि उपयोगकर्ता स्क्रिप्ट से कस्टम कीबाइंडिंग निर्दिष्ट कर सके। प्रत्येक कीबाइंडिंग मैप्स एक मनमानी कमांड के लिए, जो सत्र को एकमात्र तर्क के रूप में प्राप्त करता है।
अब, संपादक घटक कुंजीपटल को कैप्चर करता है। इसे कीमैपिंग तक पहुंच होनी चाहिए, जो प्रति सत्र हैं, इसलिए इसे सत्र तक पहुंच की आवश्यकता है। सत्र में संपादक को एक अच्छा विचार जोड़ रहा है? अन्य घटकों को कीबाइंडिंग तक पहुंचने की भी आवश्यकता होगी, इसलिए सत्र अब साझा हो जाता है और एक सिंगलटन हो सकता है ...
क्या एमवीसी से परे जीयूआई अनुप्रयोगों को डिजाइन करने के बारे में कोई अच्छी पढ़ाई है?
यह पायथन और WxPython, FWIW है।
[संपादित करें]: ठोस कंक्रीट उपयोग जोड़ा गया।