मेरे पास एक श्रेणी/फ़ाइल वृक्ष संरचना है। दोनों श्रेणियों और फ़ाइलों में माता-पिता हो सकते हैं, इसलिए मैंने उन्हें एक सामान्य बेस क्लास से लिया है जिसमें एक मूल संपत्ति है। चूंकि सभी माता-पिता स्पष्ट रूप से हमेशा श्रेणियां होंगी (फाइलें माता-पिता नहीं हो सकती हैं), ऐसा लगता है कि नोड की मूल संपत्ति को श्रेणी नोड प्रकार बनाना है।क्या यह एक खराब प्रकार है जो व्युत्पन्न प्रकार को मूल प्रकार में संदर्भित करता है?
क्या बेस क्लास के लिए व्युत्पन्न कक्षा का संदर्भ देने के लिए यह खराब रूप है? यदि हां, तो क्यों? यदि ऐसा है, तो इसे ढांचा बनाने का एक बेहतर तरीका क्या है?
class Node {
public CategoryNode Parent {get; set;}
}
class File : Node {
...
}
class CategoryNode : Node {
...
}
AFAIU, वे दोनों गुण साझा करने इतना ही पुनरावर्ती संदर्भ होने एकल वर्ग पर उपयोग क्यों नहीं के लिए एक ही आधार वर्ग का विस्तार? उन्हें अलग करने के लिए अतिरिक्त गुणों के साथ। –
हाँ यह बुरा है। परिपत्र निर्भरता का कारण बनता है। आधार व्युत्पन्न के बारे में कुछ भी नहीं पता होना चाहिए। – Tilak
@Furqan, फ़ाइल नोड अतिरिक्त सामान CategoryNode है कि, इस तरह के बच्चों के रूप में की जरूरत नहीं है, इसलिए मुझे नहीं लगता कि यह CategoryNode से निकाले जाते हैं चाहिए। – Kelsie