कारण यह है कि एक स्थिर संदर्भ में टाइलहैंडलर को कॉल करना सबसे अच्छा संभव डिज़ाइन नहीं है, यह है कि यह आपके डिजाइन के कुछ घटक है जो अन्यथा डिकॉउंड किया जा सकता है।
यदि आप भविष्य में एक से अधिक टाइलहैंडलर चुनते हैं, तो आपको इस परिवर्तन को समायोजित करने के लिए बहुत सारे काम करने होंगे।
यदि आप टाइलहैंडलर को हटाने का विकल्प चुनते हैं, तो आपको इस परिवर्तन को समायोजित करने के लिए बहुत काम करना होगा।
मान लीजिए कि आप भविष्य में एक अलग स्तर / क्षेत्र बनाते हैं, जो आपके वर्तमान टाइलहैंडलर से अलग तरीके से टाइलों को संभालता है। तब आपको या तो उपयोग करने के लिए टाइलहैंडलिंग की विधि को निर्दिष्ट करने का एक तरीका होना चाहिए, या आपको एक अलग हैंडलर को कॉल करना होगा।
यदि टाइलहैंडलर वस्तुओं के पैरामीटर के रूप में पारित किया गया था जो इसका उपयोग करते हैं, तो आप बस अगली बार एक अलग पास कर सकते हैं, या बाद में उपयोग करने वाली वस्तुओं पर एक अलग टाइल हैंडलर सेट कर सकते हैं।
व्यक्तिगत रूप से, मैं अपने XNA गेम्स में कई चीजें स्थिर संदर्भ से प्राप्त करता हूं, और यह मानता हूं कि मेरे पास उनमें से एक से अधिक कभी नहीं होगा।
यदि आप अपने गेम इंजन कोड को अपने अगले गेम में फिर से उपयोग करने में सक्षम होना चाहते हैं, तो आप संभवतः उस सामान को फिर से लिखने जा रहे हैं जिसे आपने वर्तमान में स्थिर लिखा है।
संक्षेप में:
स्थिर संदर्भ का उपयोग नहीं करने के पक्ष में:
जितना संभव हो उतना वस्तुओं को खेल के तत्वों के मापदंडों के रूप में पास करना, और आपको वर्तमान या भविष्य की परियोजनाओं के लिए उन्हें अधिक आसानी से संशोधित / पुन: उपयोग करने की अनुमति देता है। यह आपको कोड की बड़ी मात्रा की जटिलता को थोड़ा आसान बनाने की अनुमति देता है (एक बड़े खेल में, अपने खेल वर्ग में सैकड़ों स्थैतिक प्रबंधक होने के बारे में सोचें)।
स्थिर संदर्भ के पक्ष में:
स्थैतिक संदर्भ से वस्तुओं की घोषणा करना और उन तक पहुँचना आसान हो जाता है, जिसमें छोटे खेल लिखना आसान होता है, जिसमें सैकड़ों स्थैतिक प्रबंधकों की आवश्यकता नहीं होती है। एक या एक से अधिक अतिरिक्त मापदंडों की आवश्यकता नहीं करके कई विधियों और निर्माणकर्ताओं को सरल बनाता है जो इसके बजाय सांख्यिकीय रूप से एक्सेस किए जाते हैं।