2012-03-19 12 views
5

मैं मॉडल व्यू प्रेजेंटर (एमवीपी) पैटर्न के बाद मेरे आवेदन में एक परियोजना प्रबंधन प्रणाली विकसित करने की कोशिश कर रहा हूं। मेरा सवाल यह है कि, मैंने एमवीपी के कई उदाहरण देखे हैं, लेकिन मैंने एक प्रस्तुतकर्ता और एकाधिक दृश्यों में से एक को नहीं देखा है। उदाहरण के लिए जब कोई उपयोगकर्ता एक प्रोजेक्ट खोलता है तो उसी प्रोजेक्ट डेटा को ट्रीव्यूव, डेटाग्रिड और चार्ट द्वारा देखा जा सकता है। मैं इसका सामना कैसे करूं?कई विचारों के साथ विनफॉर्म एमवीपी और एक प्रस्तुतकर्ता

उत्तर

2

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

+0

तो आप मानते हैं कि कोड के दोहराव होने के बावजूद यह भी बेहतर होगा। क्या मैं सभी प्रासंगिक विचारों को अद्यतन करने के लिए पर्यवेक्षक पैटर्न का भी उपयोग करता हूं? – Dimitris

+0

यदि पृष्ठ बिल्कुल वही हैं लेकिन आप उनमें से प्रत्येक पर "एक और लेबल" दिखाते हैं तो आप एक प्रस्तुतकर्ता, एक मॉडल और एक दृश्य बना सकते हैं। प्रस्तुतकर्ता में सही यूआई दिखाने के लिए तर्क शामिल होगा। मेरा सामान्य उत्तर है –

2

जिस तरह से आप इसे करेंगे, यह एक इंटरफ़ेस के पीछे रखकर अपने विचार को सारणीबद्ध करना है और फिर प्रस्तुतकर्ता को अपने दृश्य के ठोस कार्यान्वयन के साथ तार करना है।

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

मैं आपके प्रस्तुतकर्ता को अनुपात 1: 1 पर देखने का सुझाव दूंगा। यदि आप एक ही डेटा पर एकाधिक विचार चाहते हैं तो यह आपका मॉडल है कि आपको प्रस्तुतकर्ताओं में साझा करना चाहिए, ताकि आप एक ही डेटा को विभिन्न तरीकों से प्रदर्शित कर रहे हों।

1

आपको प्रति दृश्य उदाहरण के बारे में हमेशा एक प्रस्तुतकर्ता उदाहरण होना चाहिए।

कहें कि आप एक ग्राहक दृश्य और उसके ग्राहक दृश्य प्रतिनिधि को खोलें। यह प्रत्येक का एक उदाहरण है।

आप एक और ग्राहक दृश्य खोलें, और दूसरा ग्राहक दृश्य प्रस्तुतकर्ता उदाहरण। यह प्रत्येक के दो उदाहरण हैं।

इसका मतलब यह नहीं है कि किसी दिए गए प्रस्तुतकर्ता को हमेशा एक ही दृश्य का उपयोग करना पड़ता है, वास्तव में यह नहीं होना चाहिए। प्रस्तुतकर्ता को एक दृश्य इंटरफ़ेस से बात करनी चाहिए। परीक्षण के लिए आपको नकली दृश्य के लिए वास्तविक दृश्य स्वैप करने में सक्षम होना चाहिए।

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