Je me demande ce qui est mieux en termes de bonne conception OOP, de code propre, de flexibilité et d'éviter les odeurs de code à l'avenir. Situation d'image, où vous avez beaucoup d'objets très similaires que vous devez représenter en tant que classes. Ces classes sont sans aucune fonctionnalité spécifique, juste des classes de données et sont différentes uniquement par leur nom (et leur contexte) Exemple:
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;
}
Serait-il préférable de les conserver dans des classes séparées, pour obtenir une "meilleure" lisibilité, mais avec de nombreuses répétitions de code, ou serait-il préférable d'utiliser l'héritage pour être plus SEC?
En utilisant l'héritage, vous vous retrouverez avec quelque chose comme ça, mais les noms de classe perdront leur signification contextuelle (à cause de 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;
}
Je sais que l'héritage n'est pas et ne devrait pas être utilisé pour la réutilisation du code, mais je ne vois pas d'autre moyen possible de réduire la répétition du code dans ce cas.