C# UML - Klassendiagramm - Vererbung (ist echt viel :D)

Istanblueee

Cadet 3rd Year
Registriert
März 2009
Beiträge
38
Hi Leute ich habe hier ein Problem, mit den Methoden meines Klassendiagramms.

Ich soll ein Tierverwaltungsprogramm für eine Zoohandlung entwerfen.


Ich kommen an den Unterstrichenen Stellen nicht weiter....


PS: hier muss man nichts programieren nur einen Klassendiagramm erstellen :D

Hier sind meine Requirements...

Tierart

Vogel R1: Müssen Informationen über den Preis, die Tierart, das Geburtsdatum, den Verkaufsstatus und die Spannweite enthalten.

R2: Müssen über eine Methode, "verkaufen" verfügen. Wenn das Tier älter als 14 Tage ist darf der Verkauf durchgeführt werden. Der Verkaufstatus wird dann auf "WAHR" gesetzt.

R3: Müssen in der Lage sein alle oben genannten Informationen als string zurückzugeben!!!!!!!!!!!!!!!!!!!!

Fisch R1: Müssen Informationen über den Preis, die Tierart, das Geburtsdatum, den Verkaufsstatus sowie die Information ob es sich um einen Süßwasserfisch handelt enthalten.

R2: Müssen über eine Methode "verkaufen" verfügen. Wenn das Tier älter als 5 Tage ist darf der Verkauf durchgeführt werden. Der Verkaufsstatus wird dann auf Wahr gesetzt.

R3: Müssen in der Lage sein alle oben genannten Informationen als string zurückzugeben!!!!!!!!!!!!!!!!!!!!

Nagetier R1: Müssen Informationen über den Preis, die Tierart, das Geburtsdatum, den Verkaufsstatus und die das Datum der letzten Impfung enthalten.

R2: Müssen über eine Methode "verkaufen" verfügen. Wenn die letzte Imfung weniger als 30 Tage zurück liegt, darf das Tier verkauft werden. Der Verkaufsstatus wird dann auf "WAHR" gesetzt.


R3: Müssen in der Lage sein alle oben genannten Informationen als string zurückzugeben!!!!!!!!!!!!!!!!!!!!

ALLGEMEIN
R1: Die Anzahl aller verkauften Tiere soll in einer Variable gespeichert werden. hier wüsste ich nicht was ich machen soll??? :(



das habe ich schon mal gemacht......
uml.jpg
 
Also z.B. "Wenn das Tier älter als 14 Tage ist darf der Verkauf durchgeführt werden." ist eine Einschränkung. So wie ich sehe hast du das UML-Diagramm in Word gemacht, was jedoch für eine volle UML-Realisierung nicht zu gebrauchen ist. Auf der schnelle weiß ich das man Einschränkungen/Bedingungen bei Visio ganz gut realisieren kann. Ich hab dieses Programm aber jetzt nicht zur Hand.

Und beim Letzten musst du eine Variable hochzählen.
Aus dem Kalten heraus würde ich sagen erzeugst du ja für jedes Tier ein Objekt, im Kunstruktor lässt du einfach eine int Variable hochzählen.
 
also wie die Funktionen nachher im Code aussehen soll weiss ich.

bei der verkauf Funktion, ein eine Kontrollstruktur einbauen als Return wert TRUE oder False ist auch klar.

Mein Problem ist z.B. was für Parameter ich nachher der Showinfo Methode übergeben soll,

welche methoden brauche ich noch in den UNterklassen..... usw. usw. usw.
 
R3: Müssen in der Lage sein alle oben genannten Informationen als string zurückzugeben!!!!!!!!!!!!!!!!!!!! --> Getter / Setter - Methoden

Also keine showInfo(..)-Methode sondern in deinen Tierklassen einfach Get-Methoden mit den einzelnen Attributen einbaun

Allgmein vllt für die Tierart ne Superklasse erstellen die du dann an die 3 Tierarten erben lassen kannst (Da ja jedes Tier n Preis / Geburtsdatum, etc. hat). Dann hast au die verkaufen()-Methode nur einmal drinne.

Also ich hätte das jetzt ma (auf die schnelle) ungefähr so gemacht

Als String zurückgeben macht aber iwie keinen Sinn...ich mein wenn es darum geht die Daten nachher auf ner Oberfläche anzuzeigen kannst se ja immer noch in nen String parsen
 

Anhänge

  • Zoohandlung.JPG
    Zoohandlung.JPG
    43,2 KB · Aufrufe: 4.974
Zuletzt bearbeitet:
das habe ich als letztes gemacht,

da ich bis jetzt nur Vererbung gelernt habe, habe ich das Problem bis jetzt mal so gelöst

da ist noch n Fehler die Verkaufszahl ist eine STATISCHE VARIABLE !

50fae0399e.jpg
 
Die verkaufen-Methode musst ja bei den abgleiteten klassen nicht neu implementieren, die ist ja für jedes Tier gleich oder?!

Wie die verkaufszahl ist statisch? wie willst die dann hoch zählen? Das macht doch kein Sinn?!
 
Die verkaufen Methode ist bei jeder Unterklasse Unterschiedlich!

deshalb wird die in den Unterklassen immer überschriben.

Sobald ein Tier verkauft wurde, zählt sich die Verkaufszahl Variable hoch. Die Variable gilt dann für jedes Objekt.
 
Verkaufen ansich ist doch immer gleich. Nur der Zeitpunkt ist bei jeder Art unterschiedlich.
Wenn du bei der Methode diesen Wert mit übergibst kannst du die selbe Methode für alle Arten nutzen.
 
Ein paar Anmerkungen zu deinem letzen Diagramm,
Die artspezifischen Methoden (wie Spannweite) sind auch unglücklich, das kann man nicht allgemein abarbeiten, da müsste man sich durch ein Wust aus if( ... instanceof ... ) hangeln. Geschickter wäre da ein Dictionary (heißt unter Java glaube ich Map) mit den spezifischen Eigenschaften des Tieres( +getProperties(): Map ) . Alternativ kann man natürlich showInfos überladen, aber dann brauch ich die Methoden erst recht nicht.

Sollte der Logik halber der Preis und die Verkaufszahl vielleicht vom der Zoohandlung verwaltet werden und nicht vom Tier, das verkauft sich schließlich nicht selbst.
 
Zuletzt bearbeitet:
Zurück
Oben