2011-06-14 15 views
21

कुछ समय पढ़ने और Google आईओ वीडियो देखने के बाद भ्रम, मैं अभी भी उलझन में हूं कि एमवीपी गतिविधि और स्थानों से कैसे संबंधित है।पूरे जीडब्ल्यूटी एमवीपी बनाम गतिविधि और स्थान

मैंने पाया एक धागा एक समय पहले तैनात -> GWT 2.2 MVP vs. GWT 2.1 Activities-Places

"एमवीपी वास्तुकला एमवीपी अवधारणा है, और तरीके यह करने के लिए में से एक स्थानों-गतिविधियों रूपरेखा है।"

मैं यह भी सुना है

"एमवीपी साथ और स्थान गतिविधि"

हम "एमवीपी बिना गतिविधि और स्थान"

हम में मिश्रण कर सकते हैं कर सकते हैं दे दी है

"एक प्रस्तोता एक गतिविधि के अनुरूप है" > http://code.google.com/p/gwt-platform/

मैं वास्तव में उलझन में हूँ -

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

उत्तर

21

टीएल; डीआर: स्थान और गतिविधियां एमवीपी से संबंधित नहीं हैं।

स्थान आपके ऐप में नेविगेट करने के बारे में है: आप एक स्थान से दूसरे स्थान पर जाते हैं। और गतिविधियां स्थान बाइंडिंग "तुम क्या देखते" के साथ "आप कहाँ हैं" में मदद करने के लिए की चोटी पर बनाता है:

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

इन "भागों" (क्षेत्र) में से हर एक ActivityManager कि PlaceChangeEvent रों सुनने और पूछना द्वारा प्रबंधित किया जाता उनके संबद्ध ActivityMapper जो Activity कि इस क्षेत्र में दिखाने के लिए।

यह सब नेविगेशन के बारे में है।

एमवीपी के साथ कोई संबंध नहीं है (आधिकारिक दस्तावेज़ कहने के बावजूद)।यदि आप एमवीपी का उपयोग करते हैं, तो आप "दृश्य" के नियंत्रण में आपको "प्रेजेंटर्स" की गतिविधियां कर सकते हैं (एक गतिविधि पर start विधि के तर्क में प्राप्त हो जाएगी)। हालांकि यह नियम नहीं है, और, उदाहरण के लिए, Google dewepling गतिविधियों और प्रस्तुतकर्ताओं के साथ, मोबाइलवेबैप नमूने में experimenting है।

+0

"अगर आप एमवीपी का उपयोग करें", क्या आपको लगता है कि वास्तव में मतलब है ? जैसा कि मैंने अपने आप पर मॉडल-व्यू-प्रेजेंटर्स को अलग कर दिया है और उन्हें अपने स्वयं के कार्यान्वयन के साथ एक इंटरफ़ेस पर बातचीत करनी है? –

+0

यदि गतिविधियां प्रेजेंटर्स हैं, तो क्या उनका रिश्ता नहीं है? : | –

+1

पुन:। "यदि आप एमवीपी का उपयोग करते हैं": एमवीपी एक पैटर्न है, इसलिए मेरा मतलब था "आप प्रस्तुति तर्क को अपनी गतिविधि में डालते हैं (यानी इसे प्रस्तुतकर्ता बनाते हैं) और एक अन्य वर्ग में आपका विचार"। पुन। आपकी दूसरी टिप्पणी, यदि मैं कहता हूं "विचार आम तौर पर 'समग्र' होंगे, क्या यह एमवीपी से संबंधित 'समग्र' बनाता है? शायद यह स्पष्ट है कि अगर मैं एमवीपी कहता हूं और गतिविधियां ऑर्थोगोनल चिंताओं (एक कोडिंग पैटर्न है, तो दूसरा ऐप-नेविगेशन के बारे में टूलकिट/माइक्रो-फ्रेमवर्क है) –

7

गतिविधियां प्रेजेंटर्स हैं। स्थान इतिहास टोकन के लिए सिर्फ एक रैपर हैं।

भ्रम Google आईओ वीडियो के साथ शुरू हुआ, जहां एमवीपी जीडब्ल्यूटी अवधारणा पेश की गई थी, लेकिन कोई कार्यान्वयन नहीं दिया गया था। तो लोगों ने अपना खुद का रोलिंग शुरू कर दिया। फिर Google ने 2.1 डॉक्स लिखे जहां उन्होंने अवधारणा का विस्तार किया और केवल कुछ उदाहरण कोड डाउनलोड करने के लिए दिया। बाद में 2.2 में उन्होंने अपना पूरा कार्यान्वयन, क्रियाकलाप एट अल पेश किया।

तो, यदि आप एमवीपी मार्ग जाना चाहते हैं तो आपको अपना कार्यान्वयन लेने की आवश्यकता है। सक्रियता शायद सबसे अच्छी होगी, क्योंकि यह आधिकारिक है।

2

जब तक आप उन्हें विकास के दो पैटर्न के रूप में सोचते हैं, तो उन्हें अलग रखना बहुत आसान है। एमवीपी चिंताओं को अलग करने के लिए एक पैटर्न है और गतिविधियां और स्थान यूआरएल और इतिहास प्रबंधन के लिए एक उपकरण है।

यहाँ मदद करने के लिए किसी भी भ्रम को स्पष्ट एक अच्छा लेख, MVP, Activities and Places Confusion

9

एमवीपी मॉडल, देखें, प्रस्तुतकर्ता के लिए खड़ा है, यह एक कोडन पैटर्न है। यह सिर्फ MVC (मॉडल, देखें, नियंत्रक) पैटर्न से विकास है। MVC wikipedia page देखें।

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

कुछ लोगों ने आपके कोड को व्यवस्थित करने के लिए काम की मात्रा को कम करने के लिए ढांचे तैयार किए हैं। विभिन्न एमवीपीमेंटमेंट्स पर एक नज़र डालें। उन्हें वेब पर ढूंढना आसान है।

एमवीपी आपके कोड को परीक्षण करने में आसान बनाता है क्योंकि आप आसानी से एक अन्य कार्यान्वयन (आमतौर पर एक नकली) द्वारा अपने विचार को प्रतिस्थापित कर सकते हैं जो व्यवहार या आपके विचार को नकली बना देगा। इस प्रकार आपको ब्राउज़र परीक्षण के साथ अपने परीक्षण चलाने की आवश्यकता नहीं है (GWT विचार HTML दृश्य हैं)। तो आपके परीक्षण तेजी से चलेंगे।

गूगल प्रलेखन कहते हैं:

गतिविधियों और स्थानों ढांचे आप अपने आवेदन के भीतर बुकमार्क यूआरएल बनाने के लिए अनुमति देता है।

तो गतिविधियां और स्थान केवल एक एमवीपी ढांचे से कहीं अधिक है। फिर भी गतिविधि एक प्रेजेंटर है।

public interface Activity { 

    String mayStop(); 

    void onCancel(); 

    void onStop(); 

    void start(AcceptsOneWidget panel, EventBus eventBus); 
} 

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

कुछ अन्य एमवीपी कार्यान्वयन में आप बाइंड() और अनबिंड() विधियों को एक ही भूमिका निभा सकते हैं।

Google से गतिविधि प्लेसमेंट कार्यान्वयन की शक्ति के पीछे सभी ऑब्जेक्ट्स से आता है ऑब्जेक्ट जो आपकी गतिविधि को शुरू या बंद कर देगा और यह इतिहास को संभालेगा।

स्थान ऊपर वर्णित अन्य लोगों के रूप में केवल यूआरएल का प्रतिनिधित्व है।

Google से गतिविधि प्लेसमेंट कार्यान्वयन में कई वस्तुएं शामिल हैं। समझने में आपकी सहायता करने के लिए यहां एक स्कीमा है। आप देखेंगे कि गतिविधि पूरी चीज का केवल एक छोटा सा हिस्सा है। You can find some more details on my blog in this article

enter image description here

0

वहाँ दो स्वतंत्र आयाम डिजाइन पैटर्न हैं - कोई पैटर्न - एमवीपी

नेविगेशन और स्क्रीन ट्रेवर्सल - कोई नेविगेशन - क्रियाएँ और स्थानों

तुम एक हो सकता है एप्लिकेशन जो निम्नलिखित

में से किसी एक का पालन कर सकता है
  • नहीं एमवीपी, कोई गतिविधियों और स्थानों
  • केवल एमवीपी
  • केवल गतिविधियों और स्थानों
  • गतिविधियों और स्थानों के साथ एमवीपी
संबंधित मुद्दे

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