फैक्टरी
निजी कंस्ट्रक्टर्स उपयोगी होता है जब एक कारखाने पैटर्न (दूसरे शब्दों में, एक स्थिर समारोह है कि बजाय स्पष्ट इन्स्टेन्शियशन वर्ग का एक उदाहरण प्राप्त करने के लिए प्रयोग किया जाता है) का उपयोग हो सकता है।
public class MyClass
{
private static Dictionary<object, MyClass> cache =
new Dictionary<object, MyClass>();
private MyClass() { }
public static MyClass GetInstance(object data)
{
MyClass output;
if(!cache.TryGetValue(data, out output))
cache.Add(data, output = new MyClass());
return output;
}
}
छद्म मुहरबंद नेस्टेड बच्चे
कोई नेस्टेड कक्षाएं कि बाहरी वर्ग से विरासत निजी निर्माता का उपयोग कर सकते है।
उदाहरण के लिए, आप एक अमूर्त वर्ग कि आप से विरासत कर सकते हैं बनाने के लिए इसका उपयोग कर सकते हैं, लेकिन और कोई नहीं (एक internal
निर्माता भी एक ही विधानसभा के लिए विरासत को प्रतिबंधित करने के लिए यहाँ काम करेगा, लेकिन private
निर्माता बलों सभी कार्यान्वयन नेस्ट कक्षाएं किया जाना है।)
public abstract class BaseClass
{
private BaseClass() { }
public class SubClass1 : BaseClass
{
public SubClass1() : base() { }
}
public class SubClass2 : BaseClass
{
public SubClass2() : base() { }
}
}
बेस निर्माता
उन्होंने यह भी "आधार" कंस्ट्रक्टर्स कि अलग से कहा जाता है, और अधिक acce बनाने के लिए इस्तेमाल किया जा सकता है ssible रचनाकारों।
public class MyClass
{
private MyClass(object data1, string data2) { }
public MyClass(object data1) : this(data1, null) { }
public MyClass(string data2) : this(null, data2) { }
public MyClass() : this(null, null) { }
}
स्रोत
2010-04-06 14:58:10
मुझे कैश एड कथन के अंदर असाइनमेंट पसंद है, मैंने नल कोलेसिंग ऑपरेटर के साथ आलसी लोडेड गुणों के लिए उस वाक्यविन्यास का उपयोग किया है, इससे पहले यह मेरे सामने नहीं हुआ था इससे पहले कि यह पहले से नियमित तरीकों से समान रूप से उपयोग किया जा सके। –
एडम-बहुत बहुत धन्यवाद, अब समझ में आता है !!!! –
पहला उदाहरण सिंगलटन फैक्ट्री का उदाहरण प्रतीत होता है? –