मुझे आश्चर्य हो रहा है कि जावा में गहरी क्लोन / उदाहरण की प्रतिलिपि बनाने का एक अनुशंसित तरीका है।
मेरे पास 3 समाधान हैं, लेकिन मुझे कुछ याद हो सकता है, और मैं आपकी राय लेना चाहूंगा
संपादित करें: Bohzo प्रस्तावक और परिष्कृत प्रश्न शामिल करें: यह उथले क्लोनिंग की तुलना में गहरे क्लोनिंग के बारे में अधिक है।
यह स्वयं करो:
गुण के बाद हाथ के गुणों द्वारा क्लोन को कोड करें और जांचें कि उत्परिवर्तित उदाहरणों को भी क्लोन किया गया है।
समर्थक:
- क्या किया जाएगा का नियंत्रण
- त्वरित निष्पादन
विपक्ष:
- लिखने और बनाए रखने के लिए थकाऊ
- बग प्रवण (कॉपी / पेस्ट विफलता, लापता संपत्ति, पुन: असाइन किए गए परिवर्तनशील संपत्ति)
प्रतिबिंब का उपयोग करें:
अपने स्वयं के प्रतिबिंब उपकरणों के साथ या एक बाहरी सहायक (जैसे जकार्ता आम-फलियां) के साथ एक सामान्य प्रतिलिपि विधि लिखना आसान है जो एक पंक्ति में काम करेगा।
समर्थक:
- लिखने में आसान
- रखरखाव रखरखाव नहीं
:
- जो भी होता है उसका कम नियंत्रण
- अगर प्रतिबिंब उपकरण उप वस्तुओं को भी क्लोन नहीं करता है तो उत्परिवर्तित वस्तु के साथ बग प्रवण होता है
- धीमा निष्पादन
क्लोन फ्रेमवर्क का उपयोग करें:
एक फ्रेमवर्क का उपयोग करें जो इसे आपके लिए करता है, जैसे:
कॉमन्स-लैंग सीरियलाइज़ेशन यूटिल्स
जावा डीप क्लोनिंग लाइब्रेरी
डोज़र
कीटो
प्रो:
- समान प्रतिबिंब
- जो वास्तव में क्लोन किया जाएगा उस पर अधिक नियंत्रण।
विपक्ष:
- हर उत्परिवर्ती उदाहरण पूरी तरह से क्लोन है, यहां तक कि पदानुक्रम के अंत में
- निष्पादित करने के लिए बहुत धीमा हो सकता है
रनटाइम पर क्लोन लिखने के लिए बायटेकोड इंस्ट्रूमेंटेशन का उपयोग करें
javassit , BCEL या cglib का उपयोग एक हाथ से लिखे गए उपवास के रूप में एक समर्पित क्लोनर बनाने के लिए किया जा सकता है। कोई व्यक्ति इस उद्देश्य के लिए इनमें से किसी एक उपकरण का उपयोग करके एक परिवाद जानता है?
मुझे यहाँ क्या याद आया?
तुम किसकी सिफारिश करना चाहोगे ?
धन्यवाद।