2012-02-23 3 views
8

En C++ puisque l'héritage privé n'est pas considéré comme une relation , comment est-il censé être affiché dans un diagramme de classes et s'il est affiché comme une relation has-a alors comment Est-il différencié entre une composition et un héritage privé?Comment afficher la relation d'héritage privé dans un diagramme de classes UML

+4

C'est une excellente question. Le problème est que l'héritage privé est un oxymore, c'est pourquoi il ne fait pas partie du dictionnaire UML. Je voudrais le montrer comme a-a avec une remarque indiquant qu'il est hérité privé. Un autre choix consiste à refactoriser votre design pour éviter l'héritage privé: les cas où vous devez l'avoir sont peu nombreux et espacés, donc de bonnes chances sont qu'un plaine a-a fonctionnerait très bien. – dasblinkenlight

Répondre

2

Il devrait être une relation de composition (solide diamant noir sur le côté de la sous-classe), parce que:

  • héritage privé signifie « mis en œuvre en termes de » mais à cet égard, il peut être simplement traités de la même chose que " a une "relation".
  • Une instance de la sous-classe possède clairement la partie calss de base de l'objet, et la propriété n'est partagée avec aucun autre objet.
Questions connexes