ฉันสงสัยว่าอะไรจะดีไปในแง่ของการออกแบบ OOP ที่ดีทำความสะอาดโค้ดมีความยืดหยุ่นและหลีกเลี่ยงการดมกลิ่นของรหัสในอนาคต สถานการณ์รูปภาพที่คุณมีวัตถุที่คล้ายกันจำนวนมากที่คุณต้องการแสดงเป็นคลาส คลาสเหล่านี้ไม่มีฟังก์ชั่นเฉพาะใด ๆ เพียงแค่คลาสข้อมูลและแตกต่างกันตามชื่อ (และบริบท) ตัวอย่าง:
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 ที่มากขึ้น
โดยใช้การสืบทอดคุณจะต้องจบลงด้วยสิ่งนี้ แต่ชื่อคลาสจะสูญเสียความหมายตามบริบท (เนื่องจาก is-a, not-a-a):
Class A
{
String name;
String description;
}
Class B : A
{
String count;
}
Class C : B
{
String imageUrl;
}
Class D : C
{
String age;
}
ฉันรู้ว่าการสืบทอดไม่ได้และไม่ควรใช้สำหรับการนำโค้ดกลับมาใช้ใหม่ แต่ฉันไม่เห็นวิธีที่เป็นไปได้อื่น ๆ ในการลดการทำซ้ำรหัสในกรณีเช่นนี้