जीयूआई टूलकिट के अधिकांश आजकल सिग्नल + स्लॉट मॉडल का उपयोग करते हैं। यह क्यूटी और जीटीके + था, अगर मैं गलत नहीं हूं, तो इसका नेतृत्व किसने किया।
आप जानते हैं, विगेट्स या ग्राफिकल ऑब्जेक्ट (कभी-कभी भी प्रदर्शित नहीं होते हैं) मुख्य लूप हैंडलर को संकेत भेजते हैं । मुख्य-लूप हैंडलर तब उस विजेट / ग्राफ़िकल ऑब्जेक्ट के लिए असाइन किए गए ईवेंट , कॉलबैक या स्लॉट को कॉल करता है । आमतौर पर डिफ़ॉल्ट (और ज्यादातर मामलों में virtual
) इवेंट-हैंडलर पहले से ही सभी पूर्व-परिभाषित संकेतों को संभालने के लिए टूलकिट द्वारा प्रदान किए जाते हैं, इसलिए, पिछले डिजाइनों के विपरीत, जहां डेवलपर को प्रत्येक संदेश के लिए पूरे मुख्य-लूप और हैंडलर को स्वयं लिखना था। (थिंक WinAPI), डेवलपर को केवल उन संकेतों के बारे में चिंता करनी होगी जो उन्हें नई कार्यक्षमता को लागू करने की आवश्यकता है।
अब तक इस डिज़ाइन का उपयोग अधिकांश आधुनिक टूलकिट में किया जा रहा है जहाँ तक मुझे पता है। वहाँ Qt, GTK +, FLTK आदि जावा स्विंग हैं। C # के पास इसके लिए एक भाषा सुविधा (ईवेंट और डेलिगेट्स) भी है, और इस डिज़ाइन पर विंडोज फॉर्म विकसित किए गए हैं। वास्तव में, पिछले एक दशक में, GUI प्रोग्रामिंग के लिए यह डिजाइन एक तरह का अलिखित मानक बन गया है। चूंकि यह उत्पादकता बढ़ाता है और अधिक से अधिक अमूर्तता प्रदान करता है।
हालांकि, मेरा सवाल यह है:
क्या कोई वैकल्पिक डिजाइन है, जो आधुनिक जीयूआई प्रोग्रामिंग के लिए समानांतर या व्यावहारिक है?
यानी सिग्नल + स्लॉट्स डिजाइन, शहर में एकमात्र व्यावहारिक है? क्या जीयूआई प्रोग्रामिंग किसी अन्य डिजाइन के साथ करना संभव है ? क्या कोई आधुनिक (अधिमानतः सफल और लोकप्रिय) जीयूआई टूलकिट एक वैकल्पिक डिजाइन पर बनाया गया है?
std::function
, नहीं एक अतुल्यकालिक संकेत। इसके अलावा, WinAPI है प्रदान करते हैंDefWindowProc
जो एक डिफ़ॉल्ट कार्यान्वयन के रूप में विंडोज संदेशों संसाधित करता है। इसलिए मैं मानता हूं कि आपका प्रश्न त्रुटिपूर्ण तर्क पर आधारित है।