मैंने एक आवेदन जमा किया जिसे मैंने कुछ अन्य वास्तुकारों को कोड समीक्षा के लिए लिखा था। उनमें से एक ने लगभग तुरंत मुझे वापस लिखा और कहा "स्टैटिक" का उपयोग न करें। आप स्थैतिक कक्षाओं और विधियों के साथ स्वचालित परीक्षण नहीं लिख सकते। "स्टेटिक" से बचा जाना है। "
मैंने जाँच की और पूरी तरह से मेरी 1/4 कक्षाएं "स्टैटिक" चिह्नित हैं। जब मैं किसी वर्ग का उदाहरण बनाने के लिए नहीं जा रहा हूं, तो मैं स्थैतिक का उपयोग करता हूं क्योंकि वर्ग एक ही वैश्विक वर्ग है जिसका उपयोग पूरे कोड में किया जाता है।
उन्होंने कहा कि मॉकिंग, आईओसी / डीआई तकनीकों को शामिल करने के लिए कुछ चीजों का उल्लेख किया गया है जिनका उपयोग स्थिर कोड के साथ नहीं किया जा सकता है। उनका कहना है कि जब तीसरी पार्टी लाइब्रेरी अपनी गैर-परीक्षणनीयता के कारण स्थिर है तो यह दुर्भाग्यपूर्ण है।
क्या यह अन्य वास्तुकार सही है?
अद्यतन: यहाँ एक उदाहरण है:
APIManager - यह वर्ग 3 पार्टी एपीआई के शब्दकोश रखता है जिसे मैं अगले अनुमत समय के साथ बुला रहा हूं। यह एपीआई उपयोग की सीमा को लागू करता है कि बहुत से 3 पक्ष उनकी सेवा की शर्तों में हैं। मैं इसे कहीं भी उपयोग करता हूं मैं थर्ड पार्टी सेवा को थ्रेड कहकर कॉल कर रहा हूं। सोलेप (APIManager.GetWait ("ProviderXYZ")); कॉल करने से पहले। यहाँ सब कुछ थ्रेड सुरक्षित है और यह C # में TPL के साथ बहुत अच्छा काम करता है।
static
ठीक है;static
खेतों इलाज किया जाना चाहिए बहुत ध्यान से