Sequenzdiagramm aus Java Code erstellen

Qesera

Neues Mitglied
Hey,

für die Klausurvorbereitung hab ich aus altklausuren ein Sequenzdiagramm aus Java Code erstellt, bin mir aber bei einer Sache nicht ganz sicher.

Java:
public class Warenkorb
{
private static Warenkorb derWarenkorb;
private static float wert = 0f;
private Warenkorb(){}
public static Warenkorb getInstanceOfWarenkorb()
{ if(derWarenkorb != null) return derWarenkorb;
else {
derWarenkorb = new Warenkorb();
return derWarenkorb;
}
}
public boolean set(IArtikel einArtikel)
{ wert += einArtikel.getPreis();
return true;
}
public float getWert()
{ return wert;
}
}



public class Kunde
{
String name;
Warenkorb meinWarenkorb;
public Kunde(String name)
{ this.name =name;}
}



public class Einkauf
{ String kunde = null;
public static void main(String[] args)
{
Kunde meinKunde = new Kunde("Meyer");
meinKunde.meinWarenkorb = Warenkorb.getInstanceOfWarenkorb();
Warenkorb aktWarenkorb = meinKunde.meinWarenkorb;
Bildschirm derBildschirm = new Bildschirm();
Festplatte dieFestplatte = new Festplatte();
aktWarenkorb.set(derBildschirm);
aktWarenkorb.set(dieFestplatte);
float wert = aktWarenkorb.getWert();
System.out.println(wert);
}
}
  
  
public interface IArtikel
{
public String getBezeichnung();
public float getPreis();
}



public class Bildschirm implements IArtikel
{
public float getPreis(){
return 71.0f ;}
public String getBezeichnung() {
return "FFT-Bildschrim";
}
}



public class Festplatte implements IArtikel
{
public String getBezeichnung() {
return "2,5\"-Festplatte";
}
public float getPreis() {
return 128.50f;
}
}

Es geht um den Bereich mit dem Roten Rechteck. Die Zeile "meinKunde.meinWarenkorb = Warenkorb.getInstanceOfWarenkorb();" rufe ich in meinem Sequenzdiagramm vom erstellten Objekt meinKunde auf, weil es ja um den Warenkorb von meinKunde geht. Also Aufruf zum Objekt mit "meinKunde.meinWarenkorb" und vom Objekt aus dann mit "Warenkorb.getInstanceOfWarenkorb();".

1.jpg

Ist das richtig so oder muss der Aufruf nicht doch von der Main Methode aus erfolgen? Also ein Pfeil direkt zur Klasse Warenkorb und nicht erstmal zum Objekt meinKunde. Benutzt man dabei dann "meinKunde.meinWarenkorb" überhaupt?

Ist der Rest richtig implementiert?

Vielen Dank im Voraus und
Liebe Grüße!
 
Zuletzt bearbeitet:

KonradN

Super-Moderator
Mitarbeiter
Es geht um den Bereich mit dem Roten Rechteck. Die Zeile "meinKunde.meinWarenkorb = Warenkorb.getInstanceOfWarenkorb();" rufe ich in meinem Sequenzdiagramm vom erstellten Objekt meinKunde auf, weil es ja um den Warenkorb von meinKunde geht. Also Aufruf zum Objekt mit "meinKunde.meinWarenkorb" und vom Objekt aus dann mit "Warenkorb.getInstanceOfWarenkorb();".
Der Aufruf geht aus der main Methode an Warenkorb - es wird getInstanceOfWarenkorb aufgerufen. Also von der main Methode geht der Pfeil zu Warenkorb mit Beschriftung getInstanceOfWarenkorb.

Es wird dann etwas zurück gegeben, das dann in meinWarenkorb von meinKunde gespeichert wird. Das ist eine reine Zuweisung, die so eigentlich nicht gemacht wird. Da könnte ein Setter aufgerufen werden, dann wäre danach ein Pfeil von main zu Kunde mit setMeinWarenkorb. Wenn man das aber so im Code hat, dann wäre es ein Zugriff und da es kein Setter ist, würde ich den Pfeil beschriften als "set meinWarenkorb".

Es geht bei dem Sequenzdiagramm ja auf die Interaktion und diese Zuweisung ist eine Interaktion aus meiner Sicht, daher würde ich die mit benennen. Das kommt aber nach dem Aufruf.
 

Neue Themen


Oben