2012-02-09 13 views
8

पर प्रश्न मैंने इन्हें एक साक्षात्कार में पूछा।जावा: क्लोन विधि

  1. हम एक समवर्ती वातावरण में क्लोन विधि की देखभाल की जरूरत है? क्या हम क्लोन विधि को सिंक्रनाइज़ कर सकते हैं?

  2. क्या यह सिंगलटन कक्षाओं में क्लोन विधि का उपयोग करने का कोई अर्थ है?

मैं साक्षात्कार के दौरान इस बात के लिए ठोस जवाब नहीं था।

+13

इसके बारे में चिंता न करें। ये भयानक साक्षात्कार के प्रश्न हैं, इसलिए आप शायद वैसे भी काम नहीं करना चाहते थे। – corsiKa

+0

क्या आप जानते हैं कि सिंगलटन का क्या अर्थ है? –

+1

यह कहां है? क्या मैं वहां काम कर सकता हूँ? –

उत्तर

1
  1. आप एक वस्तु है जो अन्य धागे में परिवर्तन के अधीन है क्लोनिंग कर रहे हैं, तो आप शायद किसी प्रकार का अधिग्रहण करने की आवश्यकता होगी [पढ़ें] ताला बस के रूप में करता है, तो आप उस पर किसी अन्य संचालन कर रहे थे। सैद्धांतिक रूप से आपको नई ऑब्जेक्ट पर लॉक की आवश्यकता होगी यदि यह कभी भी असुरक्षित प्रकाशन के अधीन हो सकता है (मैं सुझाव देता हूं कि म्यूटेबल ऑब्जेक्ट को असुरक्षित रूप से प्रकाशित न करें!)।

  2. यदि आप इसका एक और उदाहरण बना सकते हैं तो यह सिंगलटन नहीं होगा (मोनोस्टेट एंटीपाटर जो सिंगलटन एंटीपाटरर्न की तरह है, केवल बदतर है और इसमें कोई स्पष्ट उद्देश्य के लिए कई ऑब्जेक्ट्स शामिल नहीं हो सकते हैं)। मुझे लगता है कि अगर आप Cloneable को लागू करने वाले कुछ वर्ग को उप-वर्गीकृत कर रहे थे, तो आप clone ओवरराइड करना चाहते हैं और या तो CloneNotSupportedException फेंकना संभव है या अन्यथा this लौटाएं।

2
  1. शायद हाँ बार लेकिन आप केवल अपने वर्ग के किसी भी अन्य तरीकों की तरह क्लोन पर लगता है और यह सिंक्रनाइज़ यदि आवश्यक हो तो अपने विशिष्ट संदर्भ के आधार पर करने के लिए है की 99.99%। उस विधि को सिंक्रनाइज़ करने में कुछ भी गलत नहीं है जो इसकी बेस क्लास में सिंक्रनाइज़ नहीं है। दूसरी ओर, एक विधि का समन्वयन करना नहीं है, जबकि एक तुल्यकालन एक अधिभावी शायद एक गलती भले ही कोड ठीक संकलित करता है तथा कोई चेतावनी जारी कर रहे हैं ...

  2. एक ठोस जवाब शायद के एक जोड़े के साथ नहीं होगा सिंगलटन डिजाइन पैटर्न पर शब्द।