Zastanawiam się, co jest lepsze pod względem dobrego projektowania OOP, czystego kodu, elastyczności i unikania zapachów kodu w przyszłości. Sytuacja obrazowa, w której masz wiele bardzo podobnych obiektów, które musisz reprezentować jako klasy. Klasy te nie mają żadnej konkretnej funkcjonalności, tylko klasy danych i różnią się tylko nazwą (i kontekstem) Przykład:
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;
}
Czy lepiej byłoby przechowywać je w osobnych klasach, aby uzyskać „lepszą” czytelność, ale przy wielu powtórzeniach kodu, czy lepiej byłoby zastosować dziedziczenie, aby uzyskać większą SUSZENIE?
Używając dziedziczenia, uzyskasz coś takiego, ale nazwy klas utracą znaczenie kontekstowe (z powodu a-a, a nie-a):
Class A
{
String name;
String description;
}
Class B : A
{
String count;
}
Class C : B
{
String imageUrl;
}
Class D : C
{
String age;
}
Wiem, że dziedziczenie nie jest i nie powinno być używane do ponownego użycia kodu, ale nie widzę żadnego innego możliwego sposobu na ograniczenie powtarzania kodu w takim przypadku.