सावधान एकमात्र के बारे में तथ्यों को पढ़ने (कोड गंध, पैटर्न नहीं) के बाद मुझे आश्चर्य है:मैं अभ्यास में खराब सिंगलेट्स से कैसे बच/प्रतिक्रिया कर सकता हूं?
मैं अपने कोड कैसे refactor कर सकते हैं उनमें से छुटकारा पाने के लिए?
लगभग हर कोई इस बात से सहमत है कि बुरे सिंगलेट्स अच्छी तरह से बुरे हैं, मुझे उन्हें बदलने के तरीके पर कोई व्यावहारिक सलाह नहीं मिली। या तो यह बहुत छोटा या बहुत मुश्किल है।
कुछ तरीके हैं जिनके बारे में मैं सोच सकता हूं लेकिन यह सब मेरे कोड को बहुत ही खराब कर रहा है।
उदाहरण के लिए मान लीजिए कि मैं एक "वैश्विक" AppConfig
वर्ग जो उत्पाद और सुविधाओं उपयोगकर्ता के लिए उपलब्ध का वर्णन के बारे में लाइसेंस जानकारी रखता डालते हैं।
मैं क्या सोच सकते हैं की:
- प्रत्येक के लिए एक आम आधार वर्ग और अपनी परियोजनाओं के हर वर्ग है जो एक
AppConfig
उदाहरण रखती है बनाएँ। (बीएडी: उन मामलों के लिए असंभव जहां आपके पास पहले से ही बेस क्लास है, उदाहरण के लिए फॉर्म) setAppConfig
विधि के साथ एक सामान्य इंटरफ़ेस बनाएं।- एक वैश्विक
AppConfigFactory
जोAppConfig
उदाहरण बना सकते हैं बनाएँ (BAD: केवल एक और वर्ग के लिए समस्या बदलाव) - हर विधि है जो इसकी आवश्यकता को पैरामीटर के रूप में उदाहरण के पास। (खराब: कोड ब्लोट)
- ...
मैं क्या कर सकता है?
संपादित करें: स्पष्टीकरण: मैंने अपने कोड में एक खराब सिंगलटन की पहचान की है। अब मैं इसे हटाने के लिए अपने कोड को दोबारा बनाना चाहता हूं। मैं सुझावों और सामान्य विचारों के बारे में पूछ रहा हूं कि इसे कैसे प्राप्त किया जाए।
http://stackoverflow.com/questions/86582/singleton-how-should-it-be-used – Justicle
की एक डुप्ली की तरह दिखता है यह कम से कम आपके द्वारा छोड़े गए प्रश्न का डुप्लिकेट नहीं है। मैं एक सिंगलटन के सही उपयोग या पेशेवरों और विपक्ष को नहीं जानना चाहता हूं। मेरे पास एक खराब सिंगलटन है जिसे मैं निकालना चाहता हूं और मैं ऐसा करने का सबसे अच्छा तरीका जानना चाहता हूं। –
http://misko.hevery.com/2008/08/21/where-have-all-the-singletons-gone/ –