2013-05-30 8 views
5

मुझे कौन सी विधि पसंद करनी चाहिए और क्यों? क्या कोई वास्तविक अंतर है?सार गुण या आधार निर्माता पैरामीटर?

सार संपत्ति:

abstract class Table 
{ 
    public abstract string Title { get; } 
} 

class InfoTable : Table 
{ 
    public override string Title 
    { 
     get { return "Info"; } 
    } 
} 

या आधार वर्ग निर्माता पैरामीटर:

abstract class Table 
{ 
    public string Title { get; private set; } 

    public Table(string title) 
    { 
     Title = title; 
    } 
} 

class InfoTable : Table 
{ 
    public InfoTable() : base("Info") { } 
} 
+0

दुर्भाग्य से प्रश्न जो बनाने के लोगों पर बहस में अच्छी तरह से यहाँ स्वीकार नहीं कर रहे, इस सवाल वाला –

+0

@FabioMarcolini कैसे अलग तरीके से व्यक्त करने के लिए तेजी से बंद किया जा रहा है के रूप में के रूप में स्थिर कुछ नहीं है? मुझे जवाब चाहिए! – astef

+0

इस प्रश्न का कोई वास्तविक जवाब नहीं है, यह सिर्फ –

उत्तर

1

वे अपने वर्ग खड़े के रूप में सिर्फ डेटा वर्ग जो कि एक अच्छा OOP प्रथा नहीं है कर रहे हैं। वैसे भी मैं पहले प्रकार पसंद करते हैं एक उपवर्ग में उस मामले में आप इस उदाहरण

class InfoTable : Table 
{ 
    private string id; 
    private string name; 
    public override string Title 
    { 
     get { return name+id; } 
    } 
} 

में के रूप में एक गैर harcoded शीर्षक हो सकता हैं क्योंकि लेकिन फिर भी यह निर्भर हो सकता है, जिनमें से दो बेहतर है

ठीक लेट्स का कहना है कि वर्ग इस उदाहरण तो

private DynamicTitleProvider provider; 
public override string Title 
    { 
     get { return provider.GetTitle(); } 
    } 
+0

सार्वजनिक जानकारी योग्य (स्ट्रिंग नाम, स्ट्रिंग आईडी): आधार (नाम + आईडी) {} – astef

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