(एक अलग दर्शकों को अब लक्ष्य के साथ, मुझे लगता है कि ...)
मैं clone()
का प्रयोग करेंगे, तो मैं बिल्कुल (Joda टाइम के बजाय) सब पर Calendar
का इस्तेमाल किया था। आप टिप्पणियों में बहस करते हैं कि आप "शरारती उप-वर्ग" के बारे में चिंतित हैं - आप में योजना के आसपास काम करने का प्रस्ताव कैसे देंगे? यदि आप शामिल उप-वर्गों के बारे में कुछ भी नहीं जानते हैं, और उन पर भरोसा नहीं करते हैं, तो आपके पास टाइप-विशिष्ट डेटा को संरक्षित करने का कोई तरीका नहीं है। यदि आप सबक्लास पर भरोसा नहीं करते हैं तो गड़बड़ नहीं करते हैं, तो आपको सामान्य रूप से बड़ी समस्याएं मिलती हैं। तिथि/समय गणना करते समय आपको सही परिणाम देने के लिए आप इस पर भरोसा कैसे करते हैं?
clone()
वस्तुओं क्लोनिंग की उम्मीद तरीका है: यह है जहां मैं एक समझदार उपवर्ग किसी भी प्रकार के विशिष्ट व्यवहार यह आवश्यक में हुक करने उम्मीद थी। आपको यह जानने की जरूरत नहीं है कि राज्य के कौन से बिट प्रासंगिक हैं - आप बस उस प्रकार से निपटने दें।
खुद Calendar.getInstance()
का उपयोग करने और गुण स्थापित करने से अधिक लाभ:
- आप एक ही कैलेंडर प्रकार
- आप गुण भूल बारे में चिंता करने की जरूरत नहीं है की रक्षा होगी: उस प्रकार की जिम्मेदारी है
- आप स्पष्ट रूप से क्या कह रहे हैं आप करना चाहते हैं, और कार्यान्वयन को पर ध्यान दें कि, जो हमेशा अच्छा होता है। आपका कोड बिल्कुल आपकी मंशा व्यक्त करता है।
संपादित करें: date
पैरामीटर का मूल्य जो कुछ अन्य थ्रेड कर नहीं बदलेगा: "धागा इंटरलिविंग" के बारे में जो मूल प्रश्न चिंताओं के संदर्भ में। हालांकि, यदि आप एक रक्षात्मक प्रतिलिपि लेते समय ऑब्जेक्ट की सामग्री को म्यूट कर रहे हैं, तो बहुत आसानी से समस्याएं पैदा कर सकता है। यदि यह जोखिम है, तो मूल रूप से आपके पास बड़ी समस्याएं हैं।
स्रोत
2013-01-29 19:41:30
क्लोन के साथ समस्या क्या है? (मुझे वास्तव में दिलचस्पी है) – zeller
अच्छा बिंदु, हाँ क्लोन अच्छा है अगर ऑब्जेक्ट स्वयं विस्तार योग्य नहीं है, दुर्भाग्यवश कैलेंडर (ग्रेगोरियन कैलेंडर) है, लेकिन अगर मुझे यकीन है कि ऑब्जेक्ट कैलेंडर है और कोई अन्य शरारती सबक्लास नहीं है तो क्लोन का उपयोग किया जा सकता है। असल में मैं उसी वर्ग के गेटटर में क्लोन विधि का उपयोग कर रहा हूं क्योंकि मुझे यकीन है कि मेरा आंतरिक कैलेंडर वास्तव में है। –
मुझे लगता है, आप सही हैं। लेकिन यदि वस्तु उस वर्ग का है जिसे आप समर्थन नहीं देना चाहते हैं तो आप इसकी प्रतिलिपि को रोक सकते हैं, है ना? – zeller