UML-Pfeile in Java-Code?

Pfeile sind markiert - (Java, Code, UML)

2 Antworten

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.

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.

0

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 :)

1
@SirNik

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.

0

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.

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.

0

Was möchtest Du wissen?