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