2010-05-30 9 views
5

मैं ज़ेंड फ्रेमवर्क और सिद्धांत सीख रहा हूं।ज़ेंड-फ्रेमवर्क सिद्धांत, और एमवीसी पैटर्न: मॉडल और रूपों के बीच डेटा किस प्रकार की परत को जोड़ना चाहिए?

मुझे आश्चर्य है कि मॉडल को फ़ॉर्म से जोड़ने और इसके विपरीत, सबसे अच्छा अभ्यास क्या है।

कुछ मामलों में फॉर्म क्लास में मॉडल से डेटा लोड करना आसान है। आइए एक बहुत ही अनूठी कक्षा कहें जो कई मॉडलों का उपयोग करती है।

अन्य मामलों में मॉडल वर्ग में विधियों के लिए सुविधाजनक है जो फ़ॉर्म के लिए डेटा तैयार करता है। आइए कहें कि इसमें एक विधि हो सकती है जो चयन-विकल्प तत्व के लिए तैयार एक सरणी लौटाती है, इसलिए यह विधि कई रूपों के लिए उपयोगी होगी।

मैं स्थिरता रखना चाहता हूं और हमेशा इस तर्क को एक परत में रखना चाहता हूं।

मुझे लगता है कि नियंत्रक सही जगह नहीं है क्योंकि मैं इसे स्पष्ट और सरल रखना चाहता हूं।

इस लक्ष्य को प्राप्त करने के लिए आपका अभ्यास क्या है (मॉडल को फ़ॉर्म से कनेक्ट करें)?

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

+2

मैं नियंत्रक में रूपों और मॉडल मैप करने के लिए करते हैं, लेकिन मैं तर्क है कि मॉडल प्रपत्र वितरित करना चाहिए सुना है। रूप सामान्य रूप से एक अजीब जानवर हैं क्योंकि उनमें दृश्य तत्व होते हैं। – Sonny

उत्तर

2

मुझे लगता है कि नियंत्रक मॉडल और रूपों को जोड़ने के लिए सबसे अच्छी जगह है। यदि आप फ़ॉर्म को पॉप्युलेट करने के लिए बहुत से कोड को रोकना चाहते हैं तो उस मॉडल पर एक पॉप्युलेट विधि बनाएं जो मॉडल स्वीकार करता है।

यदि आप मॉडल और रूपों को सीधे संवाद करने देते हैं तो यह बहुत भ्रमित हो जाएगा कि किसी विशेष समय पर क्या होगा। मैं चीजों को कम रखने के लिए जनसंख्या विधि जैसे सुविधा विधियों का निर्माण करूंगा, लेकिन चीजों को केंद्रीय रखने और "जादू व्यवहार" को रोकने के लिए सभी कार्यों को नियंत्रक से शुरू किया जाना चाहिए।

बस मेरे 2 सेंट ..

+0

मुझे आपका जवाब पसंद है, खासकर क्योंकि यह पहले से ही जो करता है उसे मान्य करता है;) – Sonny

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

  • कोई संबंधित समस्या नहीं^_^