Klassenmodellierung - Anffängerfrage

peterko

Mitglied
Hallo zusammen,

ich habe vor wenigen Tagen begonnen, mich in das Thema Modellierung einzulesen, nur irgendwie erscheint mir das alles nicht ganz logisch. Es wäre toll, wenn mir jemand kurz auf den Sprung helfen könnte! ???:L :bahnhof: ;(

Ich habe die folgenden Objekte:

User (enthält Userdaten)
Konto (enthält Kontodaten)
Auszahlungen (erhält der User, enthält Artikel)
Unternehmen (hier werden externe Firmen gepflegt, die Gutschriften überweisen)
Artikel (für die Unternehmen Geld überweisen)
Kategorien (in denen Artikel enthalten sind)
Transaktionen (enthalten in den Gutschriften der Unternehmen)


Sehe ich das richtig, dass ich Konto und Auszahlungen als Subklasse von User anlegen muss?
Und Transaktionen erweitert Auszahlungen? Wie sieht es mit Kategorien aus und kann ich Unternehmen sowie Artikel als eigene Klasse stehen lassen?

Über eine Hilfe wäre ich Euch sehr sehr dankbar!

Grüße

Peterko
 

Joose

Top Contributor
Auszahlungen (erhält der User, enthält Artikel)
Transaktionen (enthalten in den Gutschriften der Unternehmen)

Die Beschreibung dieser beiden Klassen ist mir etwas zu dürftig bzw. unverständlich daher weiß ich nicht wirklich für was die gebraucht werden :p

Sehe ich das richtig, dass ich Konto und Auszahlungen als Subklasse von User anlegen muss?

Nein! Eine Subklasse erweitert die Basis-/Vater-/Elternklasse um weitere Funktionalität bzw. spezifiert das darzustellende Objekt genauer.

Ein Konto bzw. eine Auszahlung ist keine genauere Spezifikation von einem User.
Aber es kann sein das ein User eine Liste von Konten bzw. Auszahlungen als Attribut hat.

Beispiel für Vererbung:

Java:
public class Kraftfahrzeug {
    ....
}

....

public class PKW extends Kraftfahrzeug {
    ....
}

Und Transaktionen erweitert Auszahlungen?

Siehe Antwort oben ;)
 

peterko

Mitglied
Hi Joose,

vielen liebe Dank erst einmal für Deine super schnelle Antwort. Ich versuche es noch einmal etwas genauer zu erklären.

Ich will ein Programm modellieren, das Mitglieder enthält. Dieses Mitglied gibt seine Kontodaten an, für die ich eine extra Klasse angelegt habe. Dieses Mitglied erhält Auszahlungen bzw Überweisungen, welche wiederum Transaktionen enthalten. Somit die Klassen Mitglied, Auszahlungen und Transaktionen.

Unternehmen bieten Artikel an. Diese Unternehmen sind in Kategorien aufgeteilt. Für die Kategorien habe ich eine eigene Klasse angelegt sowie für die Unternehmen. Ist das unsinnig?
 

Joose

Top Contributor
..... Auszahlungen bzw Überweisungen, welche wiederum Transaktionen enthalten

Hier gibst du dir selbst schon einen Hinweis in der Beschreibung ;)
Auszahlungen/Überweisungen enthalten Transaktionen -> sprich keine eine Auszahlung hat nur ein Liste von Transaktionen als Attribut

Nein unsinnig klingt das nicht.
(Ich persönlich kann mir noch keinen Unterschied zwischen Überweisung und Transaktion zusammenreimen aber das soll dich nicht an der Umsetzung hindern)
 

franky27

Bekanntes Mitglied
Eine kleine Hilfestellung für eine Subklasse ist es immer sich zu fragen, ob die Subklasse eine Is-a Beziehung zur Oberklasse hat. Also in deinem Fall zB "Konto IS a User" .. Ein Konto ist kein User, also kann User keine Subklasse von Konto sein. Im Falle von "Auszahlung Is a Transaktion" wäre es grundsätzlich möglich, allerdings musst du dich dann grundsätzlich Fragen, wie weit du es abstrahieren musst/kannst/willst.
 

peterko

Mitglied
Vielen Danke für Eure wertvollen Tipps! Ich beschäftige mich gerade immer noch mit der Modellierung. Selber Fall mit Auszahlung und Transaktion. Meines Erachtens besteht hier eine Assoziation. Da eine Auszahlung mehrere Transaktionen (Gutschriften) erhält, jedoch eine Transaktion nicht zwingend in einer Auszahlung vorhanden ist. Ist das so richtig modelliert?
Auszahlung Anhang anzeigen 7426 Transaktion

Wenn ich jetzt wie folgt lese:

1. Auszahlung enthält eine oder mehrere Transaktionen
2. Eine oder mehrere Transaktionen ist in einer Auszahlung enhalten (was ja aber nicht der Fall ist, da eine Transaktion auch keine Auszahlung zugewiesen ist)

Wo liegt mein Denkfehler? Wäre toll wenn mir jmd weiterhelfen könnt!
 

Joose

Top Contributor
So wie es auf dem Screenshot zu sehen ist:

1) Eine Transaktion ist einer Auszahlung zugewiesen.
2) Eine Auszahlung hat 1+ Transaktionen.

Um das zu realisieren was du willst musst statt den "1" jeweils eine "0" stehen.
 

peterko

Mitglied
Danke für die Antwort.

Jetzt muss ich nochmal nachfragen, sorry ;)
Warum muss eine Null bei beiden stehen? Muss nicht nur 0..1 bei Auszahlung stehen, denn eine Auszahlung hat immer mindestens eine Transaktion+?
 

Neue Themen


Oben