में आलसी लोडिंग प्रॉपर्टी में स्थैतिक स्थानीय चर का उपयोग मैंने हाल ही में वीबीएनईटी में स्थैतिक स्थानीय चर के उपयोगों के बारे में सीखा और आलसी लोडिंग गुणों में इसके संभावित उपयोग के बारे में सोचा।वीबीएनईटी
निम्नलिखित उदाहरण कोड पर विचार करें।
Public Class Foo
Implements IFoo
End Class
Public Interface IFoo
End Interface
Public Class Bar
Private _fooImplementation As IFoo
Public ReadOnly Property FooImplementation As IFoo
Get
If _fooImplementation Is Nothing Then _fooImplementation = New Foo
Return _fooImplementation
End Get
End Property
End Class
यह एक सामान्य, सरल बनाया आलसी लोडिंग संपत्ति होगी। आप एक ही व्यवहार के रूप में (जहां तक मुझे पता है) पाने के लिए जेनेरिक आलसी कक्षा का भी उपयोग करना चाह सकते हैं।
अब, स्थैतिक चर का उपयोग करते समय संपत्ति को देखें।
Public Class Bar
Public ReadOnly Property FooImplementation As IFoo
Get
Static _fooImplementation as IFoo = New Foo
Return _fooImplementation
End Get
End Property
End Class
जहां तक मैं देख सकता हूँ, यह कुछ फायदे सामान्य कार्यान्वयन से अधिक, प्राथमिक अपने एक अतिरिक्त चर का उपयोग करने के लिए नहीं होने के रूप में संपत्ति के बाहर चर तक पहुँचने के लिए, साथ ही अक्षमता है।
मेरा प्रश्न है: इनमें से कौन सा "सही" तरीका है? मुझे पता है कि स्थैतिक चर के अतिरिक्त ओवरहेड हैं, लेकिन क्या यह मेरी व्यक्तिगत राय में स्पष्ट रूप से खराब है, अस्पष्ट कोड जिसे दुरुपयोग किया जा सकता है? "पारंपरिक" विधि की तुलना में आप कितना प्रदर्शन खो देते हैं? विशाल कारखानों की तुलना में छोटे वर्गों के लिए यह कैसे मायने रखता है?
अग्रिम धन्यवाद।
+1 सहमत हैं, विशेष रूप से स्थिर स्थिरता को देखने के बाद। – tcarvin
दूसरों के संदर्भ के लिए, [यहां एक और जवाब] (http://stackoverflow.com/a/12202349/4889167) हंस पासेंट से जो अधिक विस्तार से जाता है। –