2011-07-21 12 views
5

मैं परिष्कृत यूआई तर्क कार्यान्वयन के लिए सर्वोत्तम प्रथाओं की तलाश में हूं। मैं एक विंडोज़ फॉर्म एप्लिकेशन पर काम कर रहा हूं, लेकिन मेरा मानना ​​है कि किसी भी मंच पर इस समस्या को हल करने के लिए सामान्य पैटर्न होना चाहिए।आप परिष्कृत यूआई तर्क कैसे कार्यान्वित करते हैं?

मेरे पास मेरे फॉर्म पर कई नियंत्रण हैं, सूचियां, बटन, टेबल और एक पेड़ दृश्य हैं। तो, विचार यह है कि "संदर्भ" के आधार पर कुछ नियंत्रण सक्षम हैं, जबकि अन्य अक्षम हैं। उनमें से कुछ इस पल के लिए कुछ सुविधाएं प्रदान कर सकते हैं और अन्य नहीं।

वर्तमान में इसे "जैसा है" लागू किया गया है। मैं घटनाओं को संभालता हूं, परिवर्तनों की जांच करता हूं (चयनित नया पेड़ नोड, चयनित नोड्स के कुछ जोड़े, आदि) और फिर तय करें कि कुछ नियंत्रणों को अक्षम या सक्षम करने की आवश्यकता है या नहीं। मुझे वास्तव में इस दृष्टिकोण को पसंद नहीं है क्योंकि फ़ॉर्म कोड जटिल दिखता है। और अगर मुझे और तर्क जोड़ने की ज़रूरत है, तो यह और भी जटिल हो जाता है। मैं वास्तव में चिंतित हूं, क्योंकि हम काफी चुस्त हैं और नई विशेषताएं हैं या कई बदलाव दैनिक मानदंड हैं।

मैं इस तर्क को भागों (विशेषताओं) में अलग करने की थकाऊ हूं, जहां प्रत्येक सुविधा एक वस्तु है जो जानता है कि इसकी स्थिति कैसे जांचें, और इस स्थिति के आधार पर, संबंधित नियंत्रण सक्षम या अक्षम करें।

वास्तव में कुछ भी नया आविष्कार नहीं करना चाहते हैं और व्यापक रूप से उपयोग किए जाने वाले किसी भी अच्छे विचार को खोजने का प्रयास नहीं करना चाहते हैं। कृपया, एकल UpdateUI() विधि दृष्टिकोण की अनुशंसा न करें, मेरा मानना ​​है कि लंबी अवधि में कुछ भी नहीं बदलेगा।

धन्यवाद।

उत्तर

6

इस ब्लॉग श्रृंखला हो सकता है आप के लिए क्या देख रहे:

http://codebetter.com/jeremymiller/2007/07/26/the-build-your-own-cab-series-table-of-contents/

(सामग्री का एक बहुत की तरह लग सकता है, लेकिन सिर्फ "विनम्र संवाद बॉक्स", Michael Feathers great article के आधार पर के साथ शुरू)। यह सब कुछ है "अपने यूआई कोड से अपना तर्क कैसे अलग करें", जो आपकी अधिकांश समस्याओं को हल कर सकता है।

+0

धन्यवाद, मुझे बिल्कुल वही लगता है जो मुझे चाहिए! – agibalov

2

उपयोगकर्ता इंटरफ़ेस डेटा बाध्यकारी और व्यावसायिक वस्तुओं में आपके व्यावसायिक तर्क को समाहित करने का तरीका है। CSLA.NET framework by Rocky Lhotka में अंतर्निहित कई शानदार सुविधाएं हैं और साथ ही कई नमूना अनुप्रयोग भी हैं। मैंने इसे मध्यम आकार के WPF प्रोजेक्ट और एक विशाल WinForms/CAB एप्लिकेशन में उपयोग किया है और वास्तव में इसका आनंद लिया है।

+0

धन्यवाद, एक नज़र डालने वाला! – agibalov

संबंधित मुद्दे