Me pregunto qué es mejor en términos de buen diseño de OOP, código limpio, flexibilidad y evitar olores de código en el futuro. Situación de imagen, donde tiene muchos objetos muy similares que necesita representar como clases. Estas clases no tienen ninguna funcionalidad específica, solo clases de datos y son diferentes solo por nombre (y contexto) Ejemplo:
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;
}
¿Sería mejor mantenerlos en clases separadas, para obtener una "mejor" legibilidad, pero con muchas repeticiones de código, o sería mejor usar la herencia para estar más SECO?
Al usar la herencia, terminarás con algo como esto, pero los nombres de clase perderán su significado contextual (debido a is-a, no has-a):
Class A
{
String name;
String description;
}
Class B : A
{
String count;
}
Class C : B
{
String imageUrl;
}
Class D : C
{
String age;
}
Sé que la herencia no es y no debe usarse para la reutilización del código, pero no veo ninguna otra forma posible de reducir la repetición del código en tal caso.