2012-06-24 17 views
6

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

यदि मेरे पास यूआई था तो यह कैसे काम करेगा जहां मैं पेड़ में फ़ोल्डर्स खींच रहा हूं? मैं एक उपयोगकर्ता को फ़ोल्डर को हटाने के दौरान एक फ़ोल्डर को हटा सकता था (इसे इसके उप फ़ोल्डर बनाने के लिए)।

तो यूआई से मैं दिखा सकता हूं कि ड्रैग हो गया है और फिर कुछ टाइमर चेक में से यह देखने के लिए कि क्या मेरा पठन मॉडल अपडेट किया गया है (यानी ड्रैग किए गए फ़ोल्डर के मूल फ़ोल्डर की जांच करें और यदि यह सही ढंग से सेट है I पता है कि यह काम किया है)।

यदि उपयोगकर्ता ने कई ड्रैग ऑपरेशन किए हैं, तो मुझे यूआई में इन परिचालनों की एक सूची रखना होगा और पठन स्टोर (सूची से किसी भी सफल आदेश को हटा देना) की जांच करनी होगी।

ऐसा करने के लिए शायद बेहतर तरीके हैं।

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

उत्तर

5

जबकि आप सिंक्रोनस कमांड का उपयोग कर सकते हैं, यह समस्या को कम नहीं करेगा जिससे आप किसी भी समस्या का वर्णन कर रहे हैं; उपयोगकर्ता को सूचित करते समय इसका मतलब थोड़ा अलग व्यवहार होगा।

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

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

+0

उत्तर के लिए धन्यवाद। –

+0

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

+0

"उपयोगकर्ताओं को सूचित करने का प्रयास करना कि उनके कार्य सफल हैं या नहीं" एक सार्वभौमिक आवश्यकता नहीं है कि प्रत्येक प्रणाली को पूरा करना होगा। यदि उपयोगकर्ता की उपलब्धियों को निर्धारित करने के लिए एप्लिकेशन की वर्तमान स्थिति महत्वपूर्ण है, तो असीमित कमांड शायद सर्वश्रेष्ठ डिज़ाइन निर्णय नहीं हैं, लेकिन इसका मतलब यह नहीं है कि सिंक्रोनस कमांड का उपयोग करना कुछ जादू बुलेट है जो राज्य को बदलने से रोक देगा * एक उपयोगकर्ता द्वारा जारी आदेशों के बीच *। – arootbeer

3

आप सिंक्रोनस कमांड का बहुत अच्छी तरह से उपयोग कर सकते हैं। सीक्यूआरएस के लिए असीमित कमांड की आवश्यकता नहीं है।