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