Frage von dontcareaboutme, 59

UML-Pfeile in Java-Code?

Ich muss anhand eines UML-Diagramms einige Java-Klassen erstellen, weiss jedoch nicht genau was die Pfeile bedeuten.

Wäre gut wenn mir jemand mit Java-Code zeigen könnte wie die Klassen verknüpft sein sollten.

Danke!

Expertenantwort
von KnusperPudding, Community-Experte für Java, 28

Ich nehme mal an, dir geht es im Allgemeinen um die Beziehungen. Und nicht nur die Pfeile.

gehen wir mal vom Interface IAccount aus:

Hier gibt es zwei Relationen. Ich erläutere mal die erste.

Zwischen Bank und IAccount.

Code-seitig würde das so aussehen:

public interface IAccount {
  ...
}

sowie:

public class Bank {

  private IAccount[] accounts;

  public void addAccount(IAccount iAccount) {
    ...
  }

  public void deleteAccount(IAccount iAccount) {
   ...
  }
}

Zwischen Bank und IAccount gibt es eine Assoziation. Die Klasse Bank kann 0 bis unendlich viele IAccounts haben. Also hat die Bank eine Array aus IAccounts als Attribut.

Beim Pfeil geht es darum: "Wer kennt wen" bzw. "Wer hat wen als Attribut".

D.h. Bank "kennt" IAccount und kann in diese Richtung auf IAccount zugreifen.

z.B.

account[1].deposit(5);


IAccount "kennt" die Bank jedoch nicht, deshalb geht der Pfeil von Bank zu IAccount.

Die ausgefüllte Diamantenform besagt, dass es keinen IAccount ohne eine Bank geben kann.

Kommentar von KnusperPudding ,

Somit kannst du dir die Beziehung zwischen IPerson und Account selbst ergänzen.

Bei Account und IAccount geht es um Vererbung.

Aber die Pfeile besagen dasselbe: Die Zugriffs-Richtung via: "Wer kennt wen?"

public abstract class Account implements IAccount {
  ...
}

Nachdem Account von IAccount ableitet, "kennt" Account die Methoden von IAccount. - Jedoch nicht andersrum.

Kommentar von SirNik ,

ergänzend zu erwähnen: zwischen IAccount und Bank ist es nicht bloß eine Assoziation (eine Assoziation gibt es bei Account und IPerson). hier stellt es eine Komposition (sonderfall der Aggregation) dar. Erklärung ist richtig. Nur die Begrifflichkeiten nochmal genauer gemacht, falls er es noch Googeln möchte :)

Kommentar von KnusperPudding ,

Danke für die Ergänzung.  - Das stimmt, hab mich mit den Begrifflichkeiten vertan. 

Es handelt sich um eine Komposition wenn A ohne B nicht existieren kann.

Aggregation wenn es nur um eine Beziehung zwischen A und B geht.

Antwort
von k3ltis, 33

Es gibt unzähliche Erklärungen zu UML. Wikipedia wäre kein schlechter Anfang. Dir das jetzt umzusetzen hätte für dich keinerlei Lern-Nutzen.

Kommentar von dontcareaboutme ,

Habe so eine Antwort bereits erwartet. Hätte hier sicher auch nicht diese Frage gestellt ohne vorher zu recherchieren. Eine Antwort mit eigenen Worten wäre für mich viel verständlicher als das Fachchinesisch was ich von google bekomme.

Kommentar von k3ltis ,

Kauf ich dir nicht ab.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten