2011-03-21 15 views
31

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

उत्तर

52

अंतर परत अद्यतन में है।

MSDN पर Model-View-Presenter pattern पृष्ठ से:

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

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

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

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

  • दोनों प्रकार आपके प्रस्तुति तर्क की टेस्टेबिलिटी बढ़ाने की अनुमति देते हैं।
  • निष्क्रिय दृश्य आमतौर पर नियंत्रक पर्यवेक्षक की तुलना में एक बड़ी परीक्षण सतह प्रदान करता है क्योंकि सभी दृश्य अद्यतन तर्क प्रस्तुतकर्ता में रखा जाता है।
  • पर्यवेक्षण नियंत्रक को आम तौर पर निष्क्रिय दृश्य से कम कोड की आवश्यकता होती है क्योंकि प्रस्तुतकर्ता सरल दृश्य अपडेट नहीं करता है।

अतिरिक्त पठन:

निष्क्रिय दृश्य:

http://martinfowler.com/eaaDev/PassiveScreen.html

http://codebetter.com/jeremymiller/2007/05/31/build-your-own-cab-part-4-the-passive-view/

निगरानी नियंत्रक:

+०१२३५१६४१०

http://martinfowler.com/eaaDev/SupervisingPresenter.html

http://codebetter.com/jeremymiller/2007/05/25/build-you-own-cab-part-3-the-supervising-controller-pattern/

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