मैं आमतौर पर उन ऐप्स को बनाता हूं जिन्हें डेटा संग्रहण की आवश्यकता होती है, और यह डेटा पूरे कार्यक्रम में उपयोग किया जाता है। हालांकि, यह अधिक नहीं है, इसलिए मैं आमतौर पर इस डेटा को लोड/सहेजने के लिए NSUserDefaults
का उपयोग करता हूं। हालांकि, बचत/लोडिंग कोड, डेटा पैकिंग/अनपॅक करने के साथ-साथ अंतरिक्ष लेता है, और मैंने सोचा कि इस कोड को वैश्विक सिंगलटन के अंदर पुन: प्रयोज्य तरीकों पर ले जाना एक अच्छा विचार होगा। ऐसा लगता है कि यह अच्छी तरह से काम किया है।डेटा प्रबंधक वर्ग के रूप में एक सिंगलटन का उपयोग खराब है?
फिर भी, मैंने हाल ही में सिंगलेट और वैश्विक वस्तुओं की बुराइयों पर बहुत कुछ पढ़ा है, और मैंने दूसरे विचारों को शुरू करना शुरू कर दिया है। लोग अक्सर कहते हैं कि सिंगलेट्स का उपयोग लगभग हमेशा खराब डिजाइन का संकेत है। अधिकांश भाग के लिए, मैं असहमत हूं (मुझे लगता है कि इस तरह के सरल उपयोग एक अच्छे डिजाइन पैटर्न हैं), लेकिन मैं निश्चित रूप से इस मामले पर कोई विशेषज्ञ नहीं हूं।
तो, अकेले इस तरह की बुरी तरह से सिंगलटन का उपयोग कर रहा है? यदि हां, तो बेहतर विकल्प क्या है?
नहीं, बुरा नहीं, बिल्कुल बुरा नहीं। ध्यान रखें कि ऐप्पल द्वारा प्रदान की गई कई आईओएस एसडीके कक्षाएं सिंगलेट के रूप में लागू की जाती हैं। जो यह नहीं कहना है कि ऐप्पल कोड स्वचालित रूप से अच्छा कोड है, लेकिन यह दृढ़ता से यह दर्शाता है कि सिंगलटन पैटर्न गुणों को रिडीम करने के बिना नहीं है। – aroth