2012-03-10 10 views
10

क्या कोई मुझे सिस्टम का उपयोग करने के लाभ को समझने में सहायता कर सकता है। सिंगलटन डिज़ाइन पैटर्न के साथ आलसी।System.Lazy <T> और सिंगलटन डिज़ाइन पैटर्न

+0

क्या कहा गया शर्तों के लिए कोई संदर्भ है? मुझे यकीन है कि जो कुछ भी परिभाषित करता है उसके कुछ उदाहरण हो सकते हैं ... –

उत्तर

15

पर सी # Singletons (भी Lazy<> को शामिल किया गया) सबसे अच्छा स्रोत जॉन स्कीट के अंतर्गत आता है: http://csharpindepth.com/Articles/General/Singleton.aspx

मान लीजिए आप एक वर्ग है कि करना चाहते हैं:

  • एक अनूठा संसाधन का प्रतिनिधित्व करता है, इसलिए यह एक होना चाहिए अनूठा उदाहरण,
  • उदाहरण एक महंगी प्रारंभ की जरूरत है,
  • प्रारंभ मापदंडों केवल रन-टाइम में उपलब्ध हो जाएगा,
  • ऐसे मामले हैं जो आप सब के बाद वस्तु का उपयोग नहीं होगा रहे हैं,
  • एक से अधिक थ्रेड एक साथ सिंगलटन वस्तु प्रारंभ करने की कोशिश कर सकते,
  • आदि हैं

ऊपर से ज्यादातर तो शर्तें सत्य हैं, आपको यह सुनिश्चित करने की आवश्यकता होगी कि कक्षा सिंगलटन है, और अनूठा उदाहरण आलसी प्रारंभ किया गया है (आवश्यक होने तक प्रारंभ नहीं किया गया है) यदि आप सी # 4.0 या बाद में लक्षित करते हैं, तो Lazy<> का उपयोग करके आपके डिज़ाइन को सरल, अधिक पठनीय और याद रखना आसान हो जाता है।

1

डॉक्स

कहते हैं कि एक बड़े या संसाधन प्रधान वस्तु के निर्माण या एक संसाधन प्रधान कार्य के निष्पादन, विशेष रूप से जब इस तरह के निर्माण को स्थगित करने लेज़ी (टी के) का एक उदाहरण का उपयोग करें या कार्यक्रम के जीवनकाल के दौरान निष्पादन नहीं हो सकता है।

तो यदि आपको इसकी आवश्यकता हो तो आप सिंगलटन इंस्टेंस केवल तभी बनाते हैं।

आलसी तत्कालता आम तौर पर उपयोगी होती है ताकि एप्लिकेशन निर्माण शुरू होने पर सभी निर्माण लागतों का भुगतान नहीं किया जा सके - एक अच्छा उपयोगकर्ता अनुभव दे सकता है।

संबंधित मुद्दे