Мне интересно, что лучше с точки зрения хорошего ООП-дизайна, чистого кода, гибкости и предотвращения запаха кода в будущем. Ситуация с изображением, когда у вас есть много очень похожих объектов, которые вы должны представлять как классы. Эти классы не имеют никакой конкретной функциональности, только классы данных и отличаются только по имени (и контексту). Пример:
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;
}
Было бы лучше держать их в отдельных классах, чтобы получить «лучшую» читаемость, но с большим количеством повторений кода, или лучше использовать наследование, чтобы быть более СУХИМЫМ?
Используя наследование, вы получите что-то подобное, но имена классов утратят контекстное значение (из-за is-a, а не has-a):
Class A
{
String name;
String description;
}
Class B : A
{
String count;
}
Class C : B
{
String imageUrl;
}
Class D : C
{
String age;
}
Я знаю, что наследование не используется и не должно использоваться для повторного использования кода, но я не вижу другого возможного способа уменьшить повторение кода в таком случае.