कॉन्स्टेंट वर्ग बनाने के लिए एक सर्वोत्तम अभ्यास का सुझाव दें


25

कॉन्स्टेंट्स वर्ग की घोषणा के बारे में मेरी टीम के सदस्यों के बीच बहस चल रही है। हम निरंतर चर को नीचे की तरह एक अलग वर्ग में ले जा रहे हैं।

public class Constants
{
      public const string StateId = "ST";
      public const string CountryId = "CI";
}

मेरी टीम के कुछ सदस्यों ने सुझाव दिया कि हम ओवरराइडिंग विकल्प से बचने के लिए कक्षा को सील घोषित कर देते हैं, और कुछ सुझाव दे रहे हैं कि हम इसे स्थिरांक वर्ग के उदाहरण से बचने के लिए स्थैतिक के रूप में चिह्नित करते हैं।
हालांकि, मैं इसे स्थिर कंस्ट्रक्टर के साथ सील करना पसंद करता हूं, क्योंकि यह हमें भविष्य की जरूरत में केवल-पढ़ने योग्य चर को इनिशियलाइज़ करने में मदद करेगा। कृपया हमें इस पर कुछ सलाह दें।


जो भी आप जाते हैं, एक विचार यह हो सकता है कि सिस्टम में एक इंटरफ़ेस का उपयोग किया जा सकता है न कि स्थिरांक वर्ग के बजाय वस्तुओं और "वैश्विक" प्रकार वर्ग के बीच निर्भरता से बचने के लिए ???
dreza

तो आप वर्ग को स्थिर बनाने पर सहमत हैं और केवल यह पूछ रहे हैं कि क्या आपको अभी या बाद में एक स्थिर रचनाकार जोड़ना चाहिए? मुझे आपके प्रश्न में कोई विरोधी राय दिखाई नहीं दे रही है, कृपया स्पष्ट करें।
डॉक्टर ब्राउन


2
मुझे आपका सवाल नहीं आता। यदि किसी वर्ग के पास कोई उदाहरण नहीं है, तो आप उसे चिह्नित कर सकते हैं static। यह पूरी तरह से स्थैतिक निर्माता की उपस्थिति या अनुपस्थिति के लिए रूढ़िवादी है।
कोडइन्चोस

1
क्या आपके स्थिरांक वास्तव में गणितीय अर्थ में स्थिर हैं, या यह विन्यास का एक रूप है?
कोडइन्चोस

जवाबों:


31

यह पूरी तरह से स्पष्ट नहीं है कि आपका प्रश्न क्या है, लेकिन यदि मूल्य वास्तव में स्थिर हैं, तो मुझे सरल विकल्प के साथ कोई समस्या नहीं दिखती है:

    public static class LocationConstants
    {
        public const string StateId = "ST";
        public const string CountryId = "CI";
    }

staticकक्षा घोषणा में उपयोग करना इस वर्ग के उद्देश्य के लिए आपकी मंशा को दर्शाता है।

मार्क ग्रेवेल इस स्टैक ओवरफ्लो उत्तर में स्थिरांक के साथ कुछ संभावित मुद्दों का वर्णन करता है । केवल तभी आपको पता चलेगा कि ये आपके कोडबेस में एक समस्या है, लेकिन यदि मान कभी बदल सकते हैं, तो public static readonlyइसके बजाय उपयोग करें const, अन्यथा स्थिरांक का संदर्भ देने वाले किसी भी कोड को फिर से बनाना होगा यदि मान बदल जाते हैं।


1
कॉन्स्टेबल चर का उपयोग करके आप जिन कैविएट में से एक पा सकते हैं, उन्हें यहां स्पष्ट रूप से समझाया गया है । चूंकि कोडबेस बढ़ते हैं और अधिक जटिल हो जाते हैं, इसलिए इसका उपयोग करने से बचने के लिए बेहतर है const, प्रदर्शन लाभ आमतौर पर भविष्य में संभावित परेशानी के जोखिमों के लायक नहीं है, आईएमएचओ। मैं public static readonlyस्थिरांक के लिए चर का उपयोग करना पसंद करता हूं ।
जोनलोफ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.