Gostaria de saber o que é melhor em termos de bom design de OOP, código limpo, flexibilidade e evitar odores de código no futuro. Situação da imagem, na qual você tem muitos objetos muito semelhantes que precisa representar como classes. Essas classes não possuem nenhuma funcionalidade específica, apenas classes de dados e são diferentes apenas pelo nome (e contexto) Exemplo:
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;
}
Seria melhor mantê-los em classes separadas, para obter legibilidade "melhor", mas com muitas repetições de código, ou seria melhor usar a herança para ser mais SECA?
Ao usar a herança, você terá algo parecido com isto, mas os nomes de classe perderão o significado contextual (por causa do is-a, não has-a):
Class A
{
String name;
String description;
}
Class B : A
{
String count;
}
Class C : B
{
String imageUrl;
}
Class D : C
{
String age;
}
Sei que a herança não é e não deve ser usada para a reutilização de código, mas não vejo outra maneira possível de reduzir a repetição de código nesse caso.