2011-10-20 13 views
8

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

+0

मेरे पास एक ही प्रश्न है। किसी को... – dFlat

उत्तर

1

मैं आपसे सहमत हूँ कि एक इंटरेक्शन सेवा ऐसे MessageBoxes आदि

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

public interface IInteractionService{ 
    MessageBoxResult ShowMessageBox(string messageBoxText, string caption, MessageBoxButton button); 
} 

यह इंटरफ़ेस क्या व्यवहार ShowMessageBox के प्रकार के निर्माण करने के लिए जा रहा है के अवलोकन से काफी स्पष्ट है:

एक बुनियादी इंटरेक्शन सेवा इंटरफेस पर विचार करें। यह व्यूमोडेल को कुछ हद तक नियंत्रण देता है, यह निर्दिष्ट करने के संदर्भ में कि किस प्रकार के इंटरैक्शन व्यवहार की अपेक्षा की जाती है। इस दृष्टिकोण के साथ समस्या यह है कि आपका व्यूमोडेल अब IInteractionService पर निर्भरता के साथ-साथ इसकी बातचीत व्यवहार अपेक्षाओं में स्पष्ट है। यह आपके व्यूमोडेल को कम पुन: प्रयोज्य बना सकता है।

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

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

संक्षेप में, इंटरेक्शन सेवाओं का उपयोग करने लेकिन इंटरेक्शन वस्तुओं मेरी राय में अपने ViewModels अधिक पुन: प्रयोज्य कर सकते हैं, आसानी से किया जा सकता है।

2

संदेश बॉक्स प्रदर्शित करने के लिए एक इंटरैक्शन सेवा का उपयोग करने में भारी कमी माता-पिता की खिड़की है - या बल्कि एक की कमी है।

दृश्य मॉडल या सेवा कार्यान्वयन से संदेश बॉक्स के माता-पिता के रूप में आपको कौन सी विंडो प्रदान करनी चाहिए? यदि आप एप्लिकेशन चुनते हैं। मेनविंडो, आप समग्र एप्लिकेशन लेआउट के बारे में एक बड़ी धारणा बना रहे हैं।

प्रक्रिया में एकमात्र इकाई जो को जानता है कि इंटरैक्शन प्रदर्शित करने के लिए कैसे दृश्य है। चाहे वह एक संदेश बॉक्स, या इन-पेज ओवरले का उपयोग कर रहा हो।

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

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