आपको दो प्रश्न मिले हैं: मुझे कब एक विधि को कॉल करना चाहिए getInstance(), और मुझे कब बनाना चाहिए ?
यदि आप एक getInstance()विधि को कॉल करने का निर्णय ले रहे हैं , तो यह आसान है। आपको यह पता करने के लिए कि आपको कब कॉल करना चाहिए, बस आपको क्लास के डॉक्यूमेंटेशन को पढ़ना होगा। उदाहरण के लिए, NumberFormatएक निर्माता और एक getInstance()विधि प्रदान करता है ; getInstance()विधि आप दे देंगे एक स्थानीय NumberFormat। के लिए Calendar, दूसरे हाथ पर, निर्माता सुरक्षित है। आप है कॉल करने के लिए getInstance()प्राप्त करने के लिए।
यदि आप यह तय कर रहे हैं कि क्याgetInstance() विधि बनानी है , तो आपको यह तय करना होगा कि आप क्या करने की कोशिश कर रहे हैं। या तो आप नहीं चाहते कि लोग आपके कंस्ट्रक्टर को कॉल करें (आप एक सिंगलटन या फैक्ट्री बना रहे हैं ), या आपको कोई आपत्ति नहीं है (जैसा कि NumberFormatऊपर, जहां वे कॉलर की सुविधा के लिए कुछ ऑब्जेक्ट्स को इनिशियलाइज़ कर रहे हैं)।
कहानी संक्षिप्त में? getInstance()अपने स्वयं के कोड में तरीके बनाने के बारे में चिंता न करें । यदि समय आता है जब वे उपयोगी होंगे, तो आपको पता चल जाएगा। और सामान्य तौर पर, यदि आप एक क्लास के कंस्ट्रक्टर को कॉल कर सकते हैं , तो आप शायद ऐसा करने वाले हैं, भले ही क्लास एक getInstance()विधि प्रदान करता हो ।