मैं इंटरफेस/सार कक्षाओं की एक श्रृंखला बना रहा हूं जिसमें मूल गुण हैं और मैं गणना गुण और एकाधिक विरासत चाहता हूं।सी #: गैर-सार गणना गुणों के साथ एकाधिक विरासत
public abstract class /interface Modifiable
{
public DateTime ModifiedDate {get; set;}
public boo ModifiedToday
{
get { return DateTime.Now.AddDays(-1).CompareTo(ModifiedDate) >= 0; }
}
public bool ModifiedInLastWeek
{
get { return DateTime.Now.AddDays(-7).CompareTo(ModifiedDate) >= 0; }
}
}
public abstract class /interface Deletable
{
public DateTime DeletionDate {get; set;}
public bool Deleted
{
get { return DeletionDate != default(DateTime) }
}
}
तब मेरे पास एक कक्षा है जो इन दो इंटरफेस/सार कक्षाओं से प्राप्त होती है।
public class Something : Modifiable, Deletable
{
//
}
लेकिन एक वर्ग दो अमूर्त वर्गों से प्राप्त नहीं हो सकता है। इसलिए मुझे इंटरफेस का उपयोग करने की आवश्यकता है, लेकिन इंटरफेस के साथ मेरे पास विधि निकाय नहीं हो सकते हैं। मुझे इंटरफेस का उपयोग करके इन साधारण बूल गुणों को लागू करने के लिए कई कक्षाओं में समान सटीक कार्यों को परिभाषित करना होगा।
मैं भी डिलीटेबल से संशोधित वारिस नहीं करना चाहता क्योंकि मैं कुछ संशोधित होना चाहता हूं लेकिन हटाया नहीं जा सकता। ये विशिष्ट वर्ग मेरी समस्या नहीं हैं, मैं बस अपनी समस्या का वर्णन करने के लिए उनका उपयोग कर रहा हूं।
क्या कोई डिज़ाइन पैटर्न है जो फ़ंक्शन निकायों को अनुमति देकर एक अमूर्त वर्ग की नकल करता है, लेकिन इंटरफ़ेस जैसे एकाधिक उत्तराधिकारी की अनुमति देता है?
यह सीधे संबंधित नहीं है आपके प्रश्न के लिए, लेकिन केवल कुछ टिप्पणियां: 1. आप इसके बजाय 'डेटटाइम?' (शून्य दिनांक दिनांक) का उपयोग करना चाहेंगे, फिर आप 'DeletionDate! = null' कर सकते हैं 'रिटर्न DeletionDate! = डिफ़ॉल्ट (दिनांक समय) '। 2. इंटरफेस के नाम से पहले "मैं" डालने के लिए यह एक सी # सम्मेलन है, इसलिए आप 'IModifiable' और' IDeletable' रखना चाहते हैं। –