5

व्यवसाय परत कोर पर भारी पुन: फैक्टरिंग के लिए है, और मुझे बेहतर डिज़ाइन पैटर्न, और कार्यान्वयन को चुनने/कार्यान्वित करने में कुछ मदद चाहिए।INotifyPropertyChanged बनाम IObservable - RxExtensions, जो पर्यवेक्षक पैटर्न

सवाल:

    एएसपी MVC में
  1. , व्यापार परत के संदर्भ में, जब IObservable हावी है INotifyPropertyChanged
  2. कौन सा एक genericObserableFactoryObject
  3. मैं वास्तव में की तरह के लिए डिजाइन पैटर्न के लिए एक बेहतर कार्यान्वयन है कमजोर EventListener मेमोरी लीक, http://msdn.microsoft.com/en-us/library/hh199438.aspx पर कम प्रोब की वजह से, यह केवल थ्रेड और थ्रेड प्रेषण
पर लागू होता है

मेरा उचित परिश्रम: मुझे लगता है कि आईएनपीसी संपत्ति स्तर पर है और दूसरा एक वैचारिक ऑब्जेक्ट स्तर पर ~ अधिक है, लेकिन LINQ के साथ ऐसा लगता है कि IObservable विकल्प हो सकता है। हालांकि, किसी भी वस्तु के अंदर एम्बेडेड सादगी और लचीलापन आकर्षक है।

तो, मुझे केवल दोनों की डिजाइन मंशा/उद्देश्य/उद्देश्य को समझने में कुछ मदद चाहिए, और कौन सा पर्यवेक्षक पैटर्न फैक्ट्री के लिए सबसे अच्छा पुन: उपयोग होगा।

इसके अलावा, किसी भी जगह पता है, मैं पर्यवेक्षक कारखानों

+0

क्या आप ObserableFactoryObject मतलब है और आप क्या हासिल करने की कोशिश कर रहे हैं? यह जानना कि जवाब देना आसान होगा। – mikalai

उत्तर

4

जहां तक ​​मुझे पता है, आईएनपीसी का प्राथमिक उपयोग क्लाइंटसाइड डेटा-बाध्यकारी (यानी डब्ल्यूपीएफ, सिल्वरलाइट) के लिए है। आप निश्चित रूप से उन ऐप्स में आईएनपीसी का उपयोग कर सकते हैं जो बाध्यकारी देखने के लिए नहीं हैं, लेकिन आपके पास एक घबराहट string चीज (PropetyName) हो रही है। इसका उपयोग करने के ऊपर की ओर आपको केवल पूरे ऑब्जेक्ट के लिए एक ईवेंट की आवश्यकता है और संपत्ति का नाम ईवेंट में निर्दिष्ट है (या पूरे ऑब्जेक्ट के लिए खाली स्ट्रिंग को बदला जाना चाहिए)। वैकल्पिक रूप से आपके पास प्रत्येक घटना

IObservable<T> पर्यवेक्षक पैटर्न (यानी .NET ईवेंट के लिए वैकल्पिक) का एक वैकल्पिक कार्यान्वयन है, के लिए XXXPropertyChanged ईवेंट हो सकता है।अपनी कक्षा से किसी ईवेंट को उजागर करने के बजाय, आप IObservable<T> का पर्दाफाश करेंगे। घटना को बढ़ाने के बजाय, आप OnNext मूल्यों को देखने योग्य अनुक्रम में मानते हैं। IObservable<T> में OnError या OnCompleted के माध्यम से एक अनुक्रम समाप्ति की अवधारणा रखने के अतिरिक्त लाभ भी हैं। तो इस मामले में, मुझे घटनाओं या IObservable<T> का उपयोग करना चाहिए। इस प्रश्न का उत्तर देने के लिए मैं IObservable<T> का समर्थन करने का सुझाव दूंगा जब तक कि लक्षित दर्शक/उपभोक्ता खुद को आरएक्स सीखने से चिंता नहीं करना चाहता।

दोनों के बीच एक काफी अनुभवहीन भिन्नता था, फिर भी मैं अधिक यहाँ अवधारणा का विस्तार http://introtorx.com/Content/v1.0.10621.0/01_WhyRx.html#WhyRx

3

MSDN बहुत स्पष्ट कहते हैं के लिए कोड का टुकड़ा मिल सकता है।

IObservable

IObserver<T> और IObservable<T> इंटरफेस धक्का-आधारित अधिसूचना, भी पर्यवेक्षक डिज़ाइन पैटर्न के रूप में जाना के लिए एक सामान्यीकृत तंत्र प्रदान करते हैं।

INotifyPropertyChanged

INotifyPropertyChanged इंटरफ़ेस आम तौर पर ग्राहकों को बाध्यकारी है कि एक संपत्ति के मूल्य बदल गया है, ग्राहकों को सूचित करने के लिए प्रयोग किया जाता है।

जहां तक ​​मैं समझता हूँ, INotifyPropertyChanged बहुत पहले जोड़ा गया है (उदाहरण के लिए, यह WS ग्राहकों में इस्तेमाल किया गया था और बाद में इसे क्योंकि WPF बाइंडिंग से निपटने में सबसे महत्वपूर्ण इंटरफेस)।

तो मुझे लगता है कि उत्तर अस्पष्ट और स्पष्ट है: यदि आपको वास्तव में पर्यवेक्षक पैटर्न की आवश्यकता है, तो IObservable का उपयोग करें।

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