Lors de la création d'une hiérarchie d'héritage, je suis confus. La classe de base abstraite ne doit contenir que des éléments couramment utilisés pour les classes héritées. Mais savoir quelles méthodes, champs et propriétés sont couramment utilisés n'est pas possible lors de la conception. Je me sens donc libre de les grouper avec des classes abstraites qui héritent hiérarchiquement. C'est ce que je fais sans souci sur lequel mes vraies classes seront hiérarchisées car je trouverai facilement une place dans la hiérarchie globale. Et il est également possible de trouver des classes abstraites inutiles au milieu de la hiérarchie.Questions lors de la conception de la hiérarchie OOP
Mais je ne sais pas est-ce une bonne façon de concevoir? Et quels désavantages peuvent se produire dans une hiérarchie abstraite non parfaite. Je dois donner un exemple clair pour cela. Pensez aux échecs et aux pièces. Si je dois définir des pièces comme pion, reine, roi, etc. Regardez ci-dessous diagramme UML.
Je divisé hierarcy à 2 pièces et glissés aucun-après Piece glissés classe abstraite parce que je crois que le glissement et aucun coulissant exigera différents membres couramment utilisés.
Mais je peux aussi les diviser de manière directionnelle car certaines pièces peuvent aller dans 8 directions, certaines dans 4 directions et d'autres dans 2 ou 3 directions. Les regrouper de manière directionnelle provoque de nouvelles questions. Où ils seront dans la hiérarchie? ils viendront après des classes glissantes? Si possible de trouver quatre groupes directionnels sous des groupes glissant et aucun-glissant et nous savons qu'il n'est pas possible d'hériter par 2 classes. Donc, pour de telles situations, je dois choisir des interfaces? si les directions ne seront jamais sous les deux, il est donc possible d'utiliser des classes abstraites. Ce n'est pas grave si je retrouvais un nouveau groupement commun qui ne nécessiterait pas l'héritage de 2 classes donc je peux le définir sous directions. En fin de conception, toutes mes pièces peuvent trouver des nœuds feuilles parfaits dans la hiérarchie et ce sera vraiment bon pour l'avenir d'avoir assez de construction complète dont je n'aurai pas besoin de changer quelque chose dans la hiérarchie.
Mais quel peut être l'inconvénient de créer une hiérarchie globale trop importante? Peut-être que dans auto-complète de l'IDE peut montrer beaucoup de classes de base abstraite nommées inutiles et étranges qui confondent les autres? quels peuvent être d'autres inconvénients?
Sérieusement? Cela semble * trop * compliqué. –