2010-11-05 4 views
0

J'écris une classe d'arbre de décision. Afin de garder la conception aussi flexible que possible, je veux obtenir les données des arbres de décision en utilisant une interface "TableDataGetter" personnalisée, qui contient la méthode getData(): String [*]. Dans mon implémentation particulière, je veux utiliser une classe "TextTableDataGetter" qui implémente "TableDataGetter". Si ma compréhension est correcte, la façon d'afficher avec les diagrammes de classes UML est d'utiliser la relation de composition entre ma classe d'arbre de décision et l'interface "TableDataGetter".Dans un diagramme de classes UML, comment spécifiez-vous le type réel d'une classe?

Ma question est de savoir si, au moment de dessiner le diagramme, je veux spécifier que je veux utiliser le "TextTableDataGetter", comment puis-je l'écrire en UML standard? Je veux être aussi précis que possible sur mon diagramme puisque le logiciel UML génère le code pour moi, pendant que je fais un brainstorming. Je veux être sûr que dans la classe de l'arbre de décision, j'ai ma variable dataGetter déclarée comme "TableDataGetter dataGetter = new TextTableDataGetter()"

Répondre

1

J'ai répondu à une question similaire here, même réponse ci-dessous.

L'agrégation et la composition représentent à la fois des relations "a". La différence entre les deux est que la composition fait référence à propriété exclusive. Par exemple, une transaction "a un" numéro d'identification de transaction, et cette transaction est la seule transaction qui a ce numéro d'identification de transaction, le numéro d'identification est exclusif à la transaction. Une transaction a également une date de transaction, mais de nombreuses transactions peuvent également avoir la même date de transaction. Puisque la date de transaction peut être partagée entre plusieurs transactions, elle n'est pas exclusive.

Lorsque vous dessinez ces deux types de relations sur un diagramme de classes UML une relation de composition serait représentée par un rempli dans le diamant où une relation d'agrégation serait représentée par un diamant qui n'est pas rempli.

alt text

Le livre Introduction to Java Programming couvre ce sujet en détail.

Questions connexes