यह निर्भर करता है। वास्तव में कर रहे हैं स्थिर तरीकों के 2 प्रकार:
- तरीके है कि स्थिर है क्योंकि वे हो सकता है
- तरीके है कि स्थिर है क्योंकि वे मध्यम आकार कोड आधार के लिए
एक छोटी सी में है आप वास्तव में दो तरीकों का एक दूसरे से व्यवहार कर सकते हैं।
यदि आपके पास पहली श्रेणी (कैन-स्टेट-स्टैटिक) में कोई विधि है, और आपको कक्षा राज्य तक पहुंचने के लिए इसे बदलने की आवश्यकता है, तो यह अपेक्षाकृत सीधे आगे है कि स्थिर विधि को चालू करना संभव है या नहीं एक उदाहरण विधि।
एक बड़े कोड बेस में, हालांकि, कॉल साइट की बड़ी संख्या यह देखने के लिए खोज कर सकती है कि एक स्थैतिक विधि को एक स्थिर स्थिति में परिवर्तित करना संभव है या नहीं। कई बार लोग कॉल की संख्या देखेंगे और कहेंगे "ठीक है ... मैं इस विधि को बेहतर नहीं बदलता, बल्कि इसके बजाय एक नया बना देता हूं जो मुझे चाहिए"।
कि में परिणाम कर सकते या तो:
- कोड दोहराव
- विधि तर्क
उन चीजों की
दोनों की संख्या में एक धमाका बुरा कर रहे हैं का एक बहुत।
तो, मेरी सलाह यह होगी कि यदि आपके पास 200 के एलओसी से अधिक कोड आधार है, तो मैं केवल स्थाई विधियों के जरिए विधियों को स्थिर कर दूंगा।
गैर स्थैतिक से स्थैतिक से रिफैक्टरिंग अपेक्षाकृत आसान है (केवल एक कीवर्ड जोड़ें), इसलिए यदि आप बाद में एक वास्तविक स्थिर में एक स्थिर-स्थैतिक बनाना चाहते हैं (जब आपको किसी उदाहरण के बाहर इसकी कार्यक्षमता की आवश्यकता होती है) तब आप कर सकते हो। हालांकि, उलटा रिफैक्टरिंग, एक आवृत्ति विधि में एक कैन-स्टैटिक मोड़ना बहुत महंगा है।
बड़े कोड बेस के साथ आदर्श आदर्श शुद्धता के पक्ष में विस्तार की आसानी के पक्ष में त्रुटि करना बेहतर होता है।
इसलिए, बड़ी परियोजनाओं के लिए चीजें स्थिर नहीं होती हैं जब तक कि आपको उनकी आवश्यकता न हो। छोटी परियोजनाओं के लिए, बस वही करें जो आपको सबसे अच्छा लगता है।
स्रोत
2009-04-08 21:26:36
http://stackoverflow.com/questions/169378/c-method-can-be-made-static-but-should-it/169423#169423 – JasonTrue
"काफी सटीक" ऑक्सीमोरॉन –
["सटीक सटीक" का सटीक सटीक डुप्लिकेट [ Resharper] (http://www.jetbrains.com/resharper/), उपकरण के विजुअल स्टूडियो टूल, हाँ कहते हैं! :-) – Junto