Мені цікаво, що краще в плані хорошого дизайну 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;
}
Чи було б краще тримати їх в окремих класах, щоб отримати "кращу" читабельність, але з багатьма повтореннями коду, чи було б краще використовувати успадкування, щоб бути більш ДУХИМ?
Використовуючи успадкування, ви закінчите щось подібне, але назви класів втратять його контекстуальне значення (через is-a, not has-a):
Class A
{
String name;
String description;
}
Class B : A
{
String count;
}
Class C : B
{
String imageUrl;
}
Class D : C
{
String age;
}
Я знаю, що спадкування не використовується і не повинно використовуватися для повторного використання коду, але я не бачу іншого способу зменшити повторення коду в такому випадку.