Ich frage mich, was in Bezug auf gutes OOP-Design, sauberen Code, Flexibilität und Vermeidung von Codegerüchen in Zukunft besser ist. Bildsituation, in der Sie viele sehr ähnliche Objekte haben, die Sie als Klassen darstellen müssen. Diese Klassen haben keine spezifische Funktionalität, sind nur Datenklassen und unterscheiden sich nur durch Namen (und Kontext). Beispiel:
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;
}
Wäre es besser, sie in getrennten Klassen zu halten, um "bessere" Lesbarkeit zu erzielen, aber mit vielen Code-Wiederholungen, oder wäre es besser, die Vererbung zu verwenden, um trockener zu sein?
Durch die Verwendung der Vererbung erhalten Sie so etwas, aber Klassennamen verlieren ihre kontextbezogene Bedeutung (aufgrund des is-a, nicht des has-a):
Class A
{
String name;
String description;
}
Class B : A
{
String count;
}
Class C : B
{
String imageUrl;
}
Class D : C
{
String age;
}
Ich weiß, dass Vererbung nicht für die Wiederverwendung von Code verwendet wird und nicht verwendet werden sollte, aber ich sehe keine andere Möglichkeit, um die Wiederholung von Code in einem solchen Fall zu reduzieren.