2016-12-13 2 views
0

enter image description hereMethoden im Assoziationsklassendiagramm verwechseln

Ich habe oben Klassendiagramm. Ich bin sehr verwirrt darüber, ob die oben genannten Produktmethoden in Produktklasse oder Benutzerklasse platziert werden sollten. Wenn ich in meinem Diagramm richtig bin, sollte ich nur die Setter- und Getter-Methode des Produkts darauf platzieren?

+0

Nur eine kurze Notiz - anscheinend duplizieren Sie die gleichen Informationen. Ihre Attributprodukte auf NormalUser sind wahrscheinlich dasselbe, was Sie bei einer zusammengesetzten Aggregation dargestellt haben. Gemäß der UML-Spezifikation haben das Inline-Attribut und die Assoziation, die als eine Linie gezeichnet werden, die gleiche semantische Bedeutung (mit der Möglichkeit, im Falle eines Attributs wie AggregationKind oder der Navigationsfähigkeit der Beziehung mehr Details zur Verfügung zu stellen). Daher sollten Sie bei der Aggregation auf Product end eine Rolle 'products' eingeben und die Inline-Version des Attributs aus NormalUser entfernen. – Ister

Antwort

2

Ja, Ihre Vorgehensweise beim Hinzufügen von addProduct, deleteProduct usw. auf NormalUser ist korrekt.

Sie könnten zum Beispiel noch bearbeiten bearbeiten auf Produkt, um Anrufe von (zum Beispiel) NormalUser abhängig von Ihrer Funktionalität/Projekt/Design/... zu behandeln.

Verwenden Sie auch keine Getter und Setter (oder machen Sie sie zumindest privat), es sei denn, Sie wissen wirklich, was Sie tun. Die Bereitstellung öffentlicher Accessoren für alle Attribute funktioniert (fast) genau so, wie alle Attribute öffentlich zugänglich zu machen und das Prinzip der Hermetisierung/Kapselung zu brechen.

Verwandte Themen