मैं सोच रहा हूं कि अच्छे OOP desing, क्लीन कोड, फ्लेक्सिबिलिटी और भविष्य में कोड स्मेल से बचने के मामले में क्या बेहतर है। छवि स्थिति, जहाँ आपके पास बहुत सी समान वस्तुएं हैं जिन्हें आपको कक्षाओं के रूप में प्रस्तुत करने की आवश्यकता है। ये वर्ग किसी भी विशिष्ट कार्यक्षमता के बिना हैं, केवल डेटा वर्ग और नाम (और संदर्भ) के उदाहरण से भिन्न हैं:
Class A
{
String name;
string description;
}
Class B
{
String name;
String count;
String description;
}
Class C
{
String name;
String count;
String description;
String imageUrl;
}
Class D
{
String name;
String count;
}
Class E
{
String name;
String count;
String imageUrl;
String age;
}
क्या उन्हें "बेहतर" पठनीयता प्राप्त करने के लिए, उन्हें अलग-अलग कक्षाओं में रखना बेहतर होगा, लेकिन कई कोड पुनरावृत्तियों को छोड़ दें, या अधिक DRY होने के लिए वंशानुक्रम का उपयोग करना बेहतर होगा?
वंशानुक्रम का उपयोग करके, आप कुछ इस तरह से समाप्त हो जाएंगे, लेकिन वर्ग के नाम इसे प्रासंगिक अर्थ खो देंगे (क्योंकि-ए, नहीं है-ए):
Class A
{
String name;
String description;
}
Class B : A
{
String count;
}
Class C : B
{
String imageUrl;
}
Class D : C
{
String age;
}
मुझे पता है कि इनहेरिटेंस कोड पुन: उपयोग के लिए नहीं है और इसका उपयोग नहीं किया जाना चाहिए, लेकिन मुझे इस तरह के मामले में कोड पुनरावृत्ति को कम करने का कोई अन्य संभव तरीका नहीं दिख रहा है।