जावा में एक सिंगलटन स्थिर चर या सदस्य चर का उपयोग करना चाहिए? क्या कोई फायदे हैं?क्या जावा सिंगलटन स्थिर चर का उपयोग करना चाहिए?
उत्तर
आपको सदस्य चर का उपयोग करना चाहिए। एक सिंगलटन एक वस्तु है (यानी एक वर्ग का एक उदाहरण) और इसलिए इसे मॉडल किया जाना चाहिए; यहां तक कि यदि आप कभी भी उनमें से एक बनाने का इरादा रखते हैं।
कक्षा स्तर के चर के लिए सांख्यिकी का उपयोग किया जाना चाहिए।
सदस्य चर स्थिर चर के माता-पिता हैं http://www.programmerinterview.com/index.php/c-cplusplus/whats-the-difference-between-a-class-variable-and-an-instance-variable/ – SpringLearner
आप स्थैतिक चर का उपयोग कर से बचने और बजाय Enum
उपयोग कर सकते हैं:
public enum MySingleton {
INSTANCE;
}
आप MySingleton.INSTANCE
के रूप में इस सिंगलटन पहुँच सकते हैं।
एनम थ्रेड सुरक्षित है और एंटम के माध्यम से सिंगलटन के कार्यान्वयन से यह सुनिश्चित होता है कि आपके सिंगलटन में एक बहुप्रचारित वातावरण में भी एक उदाहरण होगा।
स्थिर चर या सदस्य चर का उपयोग करने के लिए कोई जनादेश नहीं है। चूंकि सिंगलटन के पास केवल एक उदाहरण होगा, इसलिए तार्किक रूप से, स्थैतिक या सदस्य चर का उपयोग करने से कोई फर्क नहीं पड़ता है। इसके अलावा, स्थिर और आवृत्ति परिवर्तनीय अंतर धारण करते हैं, स्थिर चर को कक्षा लोडिंग के दौरान प्रारंभ किया जाएगा, लेकिन उदाहरण चर के दौरान आवृत्ति चर प्रारंभ किए जाएंगे।
लेकिन एक सामान्य प्रोग्रामिंग नियम के रूप में, आपको यह तय करना चाहिए कि आपको स्थिर चर की आवश्यकता है या नहीं। सार्वजनिक स्थैतिक चर न बनाएं और अनावश्यक समस्याओं के साथ समाप्त न करें। तो मेरी व्यक्तिगत राय में, चीजों को सरल और नियंत्रण में रखने के लिए आवृत्ति चर को प्राथमिकता दी जानी चाहिए।
देखना यह ठोस चर पर निर्भर करता है। निश्चित रूप से सबसे आम उपयोग यह है कि सिंगलटन सामान्य वस्तु है जो सदस्य चर रखती है। उदाहरण के लिए, आप आसानी से एक ऑब्जेक्ट को दूसरे (अन्य सभी गुणों के साथ) से प्रतिस्थापित कर सकते हैं।
प्रत्येक वर्ग में स्थैतिक चर हो सकते हैं लेकिन यह व्हीलर को नहीं रोकता है यह सिंगलटन है या नहीं।
ऑब्जेक्ट के उदाहरण के साथ इसकी प्रकृति में सिंगलटन पैटर्न। सांख्यिकी कक्षाओं का मीटर है -> सिंगलटन पैटर्न के साथ कोई संबंध नहीं है।
बहुत सारी जानकारी पहले ही दी जा चुकी है: स्थैतिक चर या एक स्थिर चर का प्रयोग करें जो आपके उदाहरण को इंगित करता है या एक enum का उपयोग करें।
एक बड़ा अंतर यह है कि आपका एकल टन एक वर्ग का सदस्य है जो किसी अन्य वर्ग का उप-वर्ग है।
इसलिए आपका सिंगलटन उदाहरण सुपर क्लास से प्राप्त होता है।
इसका एक बड़ा फायदा हो सकता है।
Enums को एक-दूसरे को विस्तारित करने की अनुमति नहीं है, लेकिन आप एक enum का उपयोग कर सकते हैं जो इंटरफेस लागू करता है।
सिंगलटन इंस्टेंस के लिए एक स्थिर संदर्भ होना आवश्यक है, लेकिन उदाहरण के लिए नियमित कक्षा की तरह ही इंस्टेंस चर का उपयोग करना चाहिए।
कारण यह है कि सिंगलटन उदाहरण सभी ऑब्जेक्ट के बाद होता है, इसलिए सामान्य अच्छे डिज़ाइन सिद्धांत अभी भी अपनी कक्षा में लागू होते हैं।
इसके अलावा, आज यह एक सिंगलटन है, लेकिन कल यह एक ThreadLocal हो सकता है या नहीं उदाहरण के निर्माण प्रतिबंध के किसी भी प्रकार की है। कक्षा को सामान्य तरीके से डिजाइन किया गया है, तो इन वास्तुशिल्प विकल्पों के बीच परिवर्तन बहुत कम है। यदि आप स्थैतिक क्षेत्रों का उपयोग करते हैं, तो ऐसे परिवर्तनों को फ़ील्ड को गैर स्थैतिक बनाने के लिए अधिक रखरखाव कार्य की आवश्यकता होगी।
- 1. सिंगलटन और जनता स्थिर चर जावा
- 2. क्यों सिंगलटन के स्थिर चर
- 3. क्या मुझे जावा स्थिर चर घोषित करने के लिए ऊपरी-केस नामकरण का उपयोग करना चाहिए?
- 4. क्या मुझे सिंगलटन के साथ रेट्रोफिट का उपयोग करना चाहिए?
- 5. क्या मुझे स्थिर डेटा सदस्यों का उपयोग करना चाहिए? (सी ++)
- 6. क्या मुझे स्थिर अस्थिर चर को सिंक्रनाइज़ करना चाहिए?
- 7. क्या मुझे स्थिर आयात का उपयोग करना चाहिए?
- 8. आपको स्थिर वर्ग के बजाय सिंगलटन पैटर्न का उपयोग कब करना चाहिए?
- 9. एक सिंगलटन पिक्सेलशैडर का उपयोग करना चाहिए सबसे अच्छा अभ्यास?
- 10. क्या जावा एफ़टीपी क्लाइंट लाइब्रेरी का उपयोग करना चाहिए?
- 11. जावा स्थिर चर अपडेट
- 12. मुझे सार्वजनिक/निजी/स्थिर तरीकों का उपयोग कब करना चाहिए?
- 13. जावा स्थिर वर्ग/चर
- 14. क्या मुझे ढांचे का उपयोग करना चाहिए?
- 15. जावा सिंगलटन बनाम स्थिर - क्या वास्तविक प्रदर्शन लाभ है?
- 16. क्या मुझे जावा में क्यूटी जंबी का उपयोग करना चाहिए?
- 17. जावा: क्या मुझे फ्लोट या फ़्लोट का उपयोग करना चाहिए?
- 18. प्रदर्शन बढ़ाने के लिए आंतरिक स्थिर चर का उपयोग करना?
- 19. स्थिर वर्ग चर का उपयोग करना - एक हियरडॉक
- 20. जावा स्थिर चर, नामकरण सम्मेलन
- 21. क्यों जावा ThreadLocal चर स्थिर
- 22. मुझे सी ++ में स्थिर वर्ग चर क्यों शुरू करना चाहिए?
- 23. मुझे हेडर में स्थिर चर प्रारंभ क्यों नहीं करना चाहिए?
- 24. जावा में स्थिर अंतिम चर
- 25. हमें एक अनियमित स्थिर अंतिम चर का उपयोग कब करना चाहिए?
- 26. जावा क्लस्टर वातावरण में स्थिर चर
- 27. जावा एनम चर स्थिर हैं?
- 28. सी ++ सिंगलटन बनाम स्थिर तरीकों
- 29. मुझे कक्षा में स्थिर तरीकों का उपयोग कब करना चाहिए और लाभ क्या हैं?
- 30. स्थिर चर का कुशलतापूर्वक उपयोग कैसे करें?
देखें: http://stackoverflow.com/questions/519520/difference-between-static-class-and-singleton-pattern –
आप कम से कम एक स्थिर चर का उपयोग किए बिना एक सिंगलटन का निर्माण करने में सक्षम होगा। – dasblinkenlight
@dasblinkenlight हाँ, मुझे एक की आवश्यकता होगी, लेकिन सवाल उन सभी अन्य चरों के बारे में है जो सदस्य चर या स्थिर चर हो सकते हैं। – Andreas