2010-04-05 6 views
6

मुझे पता है कि सिंगलटन या एक मोनोस्टेट दोनों क्या हैं और उन्हें कैसे कार्यान्वित करें। हालांकि मैं सिंगलटन के लिए कई उपयोग देख सकता हूं, मैं ऐसी स्थिति की कल्पना नहीं कर सकता जहां मैं उपयोगकर्ता को अपनी कक्षा के कई उदाहरण बनाने देना चाहता हूं, वास्तव में केवल दृश्यों के पीछे वास्तव में मौजूद है।एक मोनोस्टेट पैटर्न मॉडल क्या स्थितियां करता है?

क्या कोई मेरी मदद कर सकता है? मुझे पता है कि कई कारणों से किसी को दोनों पैटर्न से दूर रहना चाहिए, लेकिन सिद्धांत रूप में, मोनोस्टेट मॉडल किस तरह की समस्याएं करता है?

धन्यवाद

+0

कभी monostate पैटर्न के बारे में सुना। हालांकि, मुझे कल्पना है कि इसका इस्तेमाल सिंगलटन जैसे किसी प्रकार के साझा संसाधन के लिए किया जा सकता है। नीचे दिया गया लिंक एक अच्छा उदाहरण प्रदान करता है जबकि एक पर्यवेक्षक: http://www.devx.com/getHelpOn/10MinuteSolution/16361 –

+1

यह भी देखें http://c2.com/cgi/wiki ? MonostatePattern – trashgod

उत्तर

3

Monostate, मेरी आँखों के लिए, नहीं एक पैटर्न आप किसी अनुप्रयोग स्तर पर लागू करने के लिए की संभावना हो, लेकिन एक बुनियादी सुविधाओं के स्तर पर उपयोगी हो सकता है। This comment on Alex Martelli's presentation of the pattern in Python एक उदाहरण उदाहरण प्रदान करता है।

डीसीओएम या .NET रिमोटिंग परिदृश्य पर विचार करें, जहां हमारे पास बॉब नामक व्यक्ति का प्रतिनिधित्व करने वाले सर्वर पर एक ऑब्जेक्ट है। बॉब एक ​​सिंगलटन नहीं है, क्योंकि बॉब एकमात्र व्यक्ति नहीं है। लेकिन कई ग्राहक एक ही समय में बॉब से बात कर रहे हैं। प्रत्येक मामले में, क्लाइंट का बॉब का प्रत्यक्ष संदर्भ नहीं होता है (जो एक अलग पता स्थान या किसी अन्य मशीन पर है), लेकिन इसकी बजाय प्रॉक्सी ऑब्जेक्ट है। और वह प्रॉक्सी ऑब्जेक्ट उस विशेष ग्राहक के लिए स्थानीय है।

तो हमारे पास कई प्रॉक्सी ऑब्जेक्ट्स हैं, प्रत्येक अलग पहचान के साथ, लेकिन प्रत्येक राज्य को बॉब के सर्वर और व्यवहार को प्रॉक्सी कर रहा है - और इसलिए राज्य और व्यवहार साझा करना। यदि क्लाइंट ऐलिस बॉब के राज्य को अपडेट करता है (उसकी प्रॉक्सी ऑब्जेक्ट पर एक विधि बुलाकर), तो क्लाइंट कैरोल बॉब के व्यवहार में बदलाव देखेगा (जब वह अपनी प्रॉक्सी ऑब्जेक्ट पर विधियों को कॉल करेगी)। एलिस और कैरोल की प्रॉक्सी ऑब्जेक्ट्स में एक ही ऑब्जेक्ट पहचान नहीं है, लेकिन do समान स्थिति और व्यवहार है: दोनों बॉब का प्रतिनिधित्व करते हैं। दो प्रॉक्सी मोनोस्टेट पैटर्न प्रदर्शित करते हैं।

(The whole thread अधिक विस्तृत चर्चा के लिए पढ़ने लायक है, लेकिन मेरे लिए ऊपर था जहां यह ध्यान में क्लिक किया।)

+0

बस जिस तरह का उत्तर मैं ढूंढ रहा था! –

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