मैं वर्तमान में जावा के लिए ग्राफ लाइब्रेरी पर काम कर रहा हूं। जैसा कि आप उम्मीद करते हैं कि Vertex
कक्षा मौजूद है। उस वर्ग में VertexData<T>
प्रकार का ऑब्जेक्ट होता है और इसमें स्वयं कुछ भी हो सकता है।
(मुझे पता है कि यह अनावश्यक हो सकता है और मैं केवल Vertex<T>
कर सकता हूं लेकिन सवाल के उद्देश्य से इससे कोई फर्क नहीं पड़ता)।
मैं VertexData<T>
Cloneable
को लागू करने और serializing और बुला Object
deserializing, द्वारा एक गहरी प्रतिलिपि लौटने एक public VertexData<T> clone()
विधि काफी की तरह वर्णित hereउथली प्रतिलिपि वास्तव में आवश्यक है?
अब सवाल है, के बाद से मैं एक गहरी प्रतिलिपि विधि है, यह पड़ता है है बनाया एक उथली प्रतिलिपि भी समझने के लिए? यदि ऐसा है तो एक मामला क्या है कि एक गहरी प्रतिलिपि पर एक उथली प्रति को प्राथमिकता दी जाएगी?
अद्यतन: के बाद से जवाब और टिप्पणियों के सबसे क्या एक उथले प्रति एक तरह से या किसी अन्य रूप में है के कुछ विवरण शामिल हैं, मैं की तरह मैं थोड़ा स्पष्ट करने के लिए है कि लग रहा है। मुझे पता है कि एक उथली प्रतिलिपि क्या है, यह कैसे काम करती है, सबकुछ। मेरा सवाल यह है कि चूंकि यह लाइब्रेरी है कि मैं विकास कर रहा हूं, और चूंकि मैंने गहरी प्रतिलिपि बनाई है, क्या यह उथले प्रतिलिपि के लिए एक विधि भी उपलब्ध कराने के लिए समझ में आता है?
मैं यहां भी जोड़ दूंगा कि VertexData<T>
कक्षा में कोई आदिम प्रकार नहीं है।
तो ग्राफ़ लाइब्रेरी के लिए वेरटेक्स डेटा स्टोर करने के लिए उपयोग किए जाने वाले कंटेनर क्लास के संदर्भ में, क्या एक उथली प्रतिलिपि की आवश्यकता होगी?
यदि आप विकास के विकास के संदर्भ में एक उदाहरण के बारे में सोच सकते हैं?
अगर मुझे पूर्णता के लिए केवल एक उथली प्रति विधि नहीं जोड़नी चाहिए?
क्या यह एक अच्छा अभ्यास है या इससे कोई फर्क नहीं पड़ता?
शालो प्रतियां तब उपयोगी होती हैं जब आप कक्षाओं की प्रतियां बनाना चाहते हैं जो एक बड़ी अंतर्निहित डेटा संरचना या डेटा सेट करते हैं।उदाहरण के लिए, ऐसे मामले में जहां आपके पास कई "क्लाइंट" कक्षाएं हैं जिनके पास सभी बड़े डेटा संरचना संदर्भ का संदर्भ है, यदि आप ग्राहक की एक प्रति बनाना चाहते हैं, तो एक गहरी प्रति अंतर्निहित डेटा की प्रतिलिपि बनाने का प्रयास करेगी , जो जरूरी नहीं है कि आप क्या चाहते हैं। –
यह स्थितिगत है। शालो प्रतिलिपि का मतलब आमतौर पर किसी ऑब्जेक्ट के केवल एक स्तर की प्रतिलिपि बनाना होता है, जबकि गहरी प्रतिलिपि का अर्थ आम तौर पर कई स्तरों पर सब कुछ कॉपी करना है। – Adam
यदि आप अपरिवर्तनीय वस्तुओं का संदर्भ देते हैं तो आम तौर पर आप उथले प्रतियां बनाते हैं, लेकिन यह केवल एक उदाहरण है, नियम नहीं। – biziclop