निर्भर करता है। वास्तव में 2 प्रकार के स्थिर तरीके हैं:
- विधियाँ जो स्थिर हैं क्योंकि वे हो सकती हैं
- वे विधियाँ जो स्थिर हैं क्योंकि वे होनी ही चाहिए
एक छोटे से मध्यम आकार के कोड आधार में आप वास्तव में दो तरीकों से परस्पर व्यवहार कर सकते हैं।
यदि आपके पास एक ऐसी विधि है जो पहली श्रेणी (कैन-बी-स्टैटिक) में है, और आपको इसे क्लास स्टेट एक्सेस करने के लिए बदलने की आवश्यकता है, तो यह जानने के लिए कि क्या यह संभव है कि स्टैटिक विधि को एक आवृत्ति विधि में बदलना संभव है।
एक बड़े कोड बेस में, हालांकि, कॉल साइटों की सरासर संख्या यह देखने के लिए खोज कर सकती है कि क्या स्टैटिक विधि को गैर-स्थिर एक में बदलना बहुत महंगा है। कई बार लोग कॉल की संख्या देखेंगे, और कहेंगे "ठीक है ... मैं बेहतर नहीं है कि इस पद्धति को बदल दें, बल्कि एक नया बनाएं जो मुझे चाहिए।"
इसका परिणाम यह हो सकता है:
- बहुत सारे कोड दोहराव
- विधि तर्कों की संख्या में विस्फोट
वो दोनों ही बातें बुरी हैं।
इसलिए, मेरी सलाह यह होगी कि यदि आपके पास 200K LOC पर एक कोड आधार है, तो मैं केवल विधियों को स्थिर बनाऊंगा यदि वे-स्टैटिक तरीके होने चाहिए।
नॉन-स्टैटिक से स्टैटिक में रिफैक्टिंग अपेक्षाकृत आसान है (केवल एक कीवर्ड जोड़ें), इसलिए यदि आप बाद में एक वास्तविक स्टेटिक में कैन-स्टैटिक बनाना चाहते हैं (जब आपको किसी इंस्टेंस के बाहर इसकी कार्यक्षमता की आवश्यकता होती है) तो आप कर सकते हैं। हालाँकि, उलटा रीफैक्टरिंग, कैन-स्टैटिक को एक इंस्टेंस विधि में बदलना MUCH अधिक महंगा है।
बड़े कोड आधारों के साथ विस्तार की आसानी के पक्ष में त्रुटि करना बेहतर है, न कि विचारशील शुद्धता के पक्ष पर।
इसलिए, बड़ी परियोजनाओं के लिए चीजों को तब तक स्थिर न करें जब तक आपको उनकी आवश्यकता न हो। छोटी परियोजनाओं के लिए, बस वही करें जो आपको सबसे अच्छा लगता है।