2010-06-24 18 views
5

क्या मैं एक आम डिजाइन पैटर्न के नीचे क्या कर रहा हूं? यदि हां, तो नाम क्या है?क्या यह एक आम डिजाइन पैटर्न है? "वर्णनकर्ता पैटर्न"?

मेरे पास एक जटिल वस्तु है जिसमें स्ट्रिंग्स और स्ट्रिंग्स की सूचियों के साथ-साथ अन्य जटिल वस्तुओं जैसे "सरल" फ़ील्ड भी हैं। मैं इस ऑब्जेक्ट के उदाहरण जेएमएस संदेश कतार में जोड़ना चाहता हूं, जिसका अर्थ है कि उन्हें Serializable होना चाहिए। मैं पूरे ऑब्जेक्ट ग्राफ़ Serializable नहीं बनाना चाहता, इसलिए मैंने "डिस्क्रिप्टर" ऑब्जेक्ट्स बनाने के लिए चुना है जिसमें जटिल ऑब्जेक्ट्स और "बिल्डर" ऑब्जेक्ट्स बनाने के लिए जरूरी जानकारी है जो ऑब्जेक्ट्स बना सकते हैं। अब, मैं "वर्णनकर्ता" ऑब्जेक्ट को क्रमबद्ध करता हूं और इसे कतार में जोड़ता हूं। जब वस्तु को हटा दिया जाता है, तो इसे "बिल्डर" का उपयोग करके पूर्ण वस्तु में बनाया जाता है।

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

उत्तर

9

आपके द्वारा लागू किए गए सबसे समान पैटर्न Memento पैटर्न लगता है।

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

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

+0

उत्तर और संक्षिप्त स्पष्टीकरण के लिए धन्यवाद। –

4

मेरे लिए यह आपको लगता है जैसे Memento pattern लागू किया गया है।

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