/ / réduire la hiérarchie d'héritage java [fermé] - java, héritage

réduire la hiérarchie d'héritage java [fermé] - java, héritage

Cette question a été posée lors d'un entretien concernant la hiérarchie des héritages. Considérons que nous avons une longue chaîne de hiérarchie pour l'héritage. entrer la description de l'image ici

  1. Est-il bon de maintenir une longue chaîne de hiérarchie des héritages?
  2. Si c'est non. En Java, comment pouvons-nous le réduire?

Au-dessus d'un, juste un exemple.

Réponses:

2 pour la réponse № 1

Mensuel payé et horaire payé ne devraient pas être des classes, mais au mieux des interfaces. Pour répondre à votre question, oui, une longue "chaîne" est bonne. Mais seulement tant que cela a encore du sens.


0 pour la réponse № 2

Dans ce cas, je dirais que "Mensuel payé" et"Payé à l'heure" ne doit pas hériter de Engineer, car la fréquence à laquelle quelqu'un est payé n'est pas un type de personne. Au lieu de cela, la personne du groupe devrait avoir un membre "PayFrequency". Cela s'appelle "Composition" plutôt que "Héritage".

Une des raisons est que vous pouvez également avoir un médecin qui est payé mensuellement. Ensuite, vous auriez besoin de deux classes "payées mensuellement" qui ne fonctionneraient clairement pas.

Le problème ne réside pas dans la longueur de la chaîne d'héritage. Vous devez créer votre chaîne aussi longtemps que vous en avez besoin, dans la mesure où elle convient bien aux données que vous essayez de modéliser.


0 pour la réponse № 3

La question portait probablement sur les modèles de conception classiques, tels que composition et délégation.

Par exemple, une personne pourrait avoir un emploi. La personne a un nom; mais il ne devient pas un type de personne différent à cause de son travail. Au lieu de cela, la fonctionnalité spécifique au travail est délégué à l'objet de travail.