2011-03-30 2 views
-2

J'ai un résumé class1 qui a le résumé method1(). Class2 implémente class2 et remplace method1(). Class3 étend class2 et remplace method1().Abstraction UML

Laquelle des deux solutions dans l'image est la bonne selon UML?

uml

Répondre

0

est correcte Ni - bien que la solution 1 est encore moins bonne que la solution 2. Tout d'abord, il y a certaines choses syntaxiques vous devez trier:

  1. Votre diagramme montre les relations entre les classes comme Associations binaires. Ils ne sont pas - ce sont des relations de sous-type. Ceux-ci ont une syntaxe graphique différente.
  2. Les éléments abstraits (classes/méthodes) doivent être en italique.

Il y a aussi 2 choses sémantiques à trier; quelques conseils:

  1. Une classe ne peut pas implémenter une autre classe. Une classe peut implémenter une interface ou étendre (sous-type) une autre classe.
  2. Vous devez dessiner correctement les relations entre les classes. Gros indice: c'est là que la solution 2 est plus correcte que la solution 1. Vous devez comprendre pourquoi.

hth.

+0

yea class1 et class2 sont des classes abstraites. donc class2 implémente class1 et class3 étend class2 donc class3 n'a pas de relation directe avec class1 right? C'est pourquoi la deuxième solution est plus correcte – pikk

+0

Correct. class3 n'a pas de relation directe avec class1 et donc la raison pour laquelle la solution 2 est plus correcte. Attention cependant à votre première phrase: class2 ne peut pas _implement_ class1 pour les raisons que j'ai indiquées plus haut. Enfin, en supposant que ce soit des devoirs: veuillez marquer comme tel. L'honnêteté sur ce front portera ses fruits. – sfinnie