मैंने जावा में क्लोन () लागू करने पर एक त्वरित Google किया और पाया: http://www.javapractices.com/topic/TopicAction.do?Id=71
इसकी निम्न टिप्पणी है:
कॉपी कंस्ट्रक्टर और स्टैटिक फैक्ट्री के तरीके क्लोन का विकल्प प्रदान करते हैं, और इन्हें लागू करना ज्यादा आसान होता है।
मैं बस इतना करना चाहता हूं कि इसकी गहरी नकल करें। क्लोनिंग () को लागू करने से बहुत कुछ समझ में आता है, लेकिन Google का यह उच्च रैंक वाला लेख मुझे थोड़ा डराता है।
यहाँ वे मुद्दे हैं जिन पर मैंने गौर किया है:
कॉपी कंस्ट्रक्टर जेनरिक के साथ काम नहीं करते हैं।
यहाँ कुछ छद्म कोड है जो संकलन नहीं करेंगे।
public class MyClass<T>{
..
public void copyData(T data){
T copy=new T(data);//This isn't going to work.
}
..
}
नमूना 1: एक सामान्य वर्ग में कॉपी कंस्ट्रक्टर का उपयोग करना।
फैक्टरी विधियों में मानक नाम नहीं हैं।
पुन: प्रयोज्य कोड के लिए एक इंटरफ़ेस होना काफी अच्छा है।
public class MyClass<T>{
..
public void copyData(T data){
T copy=data.clone();//Throws an exception if the input was not cloneable
}
..
}
नमूना 2: एक सामान्य वर्ग में क्लोन () का उपयोग करना।
मैंने देखा कि क्लोन एक स्थिर विधि नहीं है, लेकिन क्या यह अभी भी सभी संरक्षित क्षेत्रों की गहरी प्रतियां बनाने के लिए आवश्यक नहीं होगा? क्लोन () को लागू करते समय, गैर-क्लोन करने योग्य उपवर्गों में अपवादों को फेंकने का अतिरिक्त प्रयास मुझे मामूली लगता है।
क्या मैं कुछ भूल रहा हूँ? किसी भी अंतर्दृष्टि की सराहना की जाएगी।