Laden...

State Pattern so ok?

Erstellt von #coder# vor 15 Jahren Letzter Beitrag vor 15 Jahren 2.066 Views
#coder# Themenstarter:in
395 Beiträge seit 2008
vor 15 Jahren
State Pattern so ok?

Hallo, ich habe nun ein State Pattern anhand eines Getränkeautomaten erstellt. Zusätzlich sollte es im 3 Schichten Model realisiert werden:

AutomatGUI -> Presentation (Froms)
Getraenkeautomat -> Bussines (State Pattern)
Product -> Data (hier nur ein Mockup)

Ich habe 3 Zustände realisiert, anfangs soll der Automat warten. Ein Zustand zum Rechnen der Beiträge und ein für die Produktausgabe. Jeder Zustand muss ja alle Ereignisse beachten die ausgelöst werden, wie z.B. GetChange() für die Geldrückgabe im StateAddMoney usw.

Da ich sowas zum Ersten mal gemacht habe, werde ich wahrscheinlich noch einige Fehler gemacht haben z.B. bei den Assoziation zwischen dem Getränkeautomaten. Also immer her mit Kritik und Verbesserungsvorschlägen 😃

1.002 Beiträge seit 2007
vor 15 Jahren

Hallo #coder#,

ein Verbesserungsvorschlag: Warum verwendest du keine Eigenschaften (s. guide to C#)? Die ganzen Get()-Methoden sind für das reine Zurückgeben von Werten der Felder unüblich.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

#coder# Themenstarter:in
395 Beiträge seit 2008
vor 15 Jahren

Würde ich ja, aber ich wußte nicht wie man diese in Visio realisiert, deshalb hier als Funktion dargestellt.

699 Beiträge seit 2007
vor 15 Jahren

Würde ich ja, aber ich wußte nicht wie man diese in Visio realisiert, deshalb hier als Funktion dargestellt.

Warum nimmst Du nicht einfach den Klassendesigner in der IDE?
Der ist geradezu genial dafür 😉

Grüße Stephan

PS: Lasse mir auch gerne noch ein besseres Tool vorstellen, wenn einer eines kennt;)

Gelöschter Account
vor 15 Jahren

Warum nimmst Du nicht einfach den Klassendesigner in der IDE?

du meinst doch aber nciht das von vs oder?

3.003 Beiträge seit 2006
vor 15 Jahren

Warum nimmst Du nicht einfach den Klassendesigner in der IDE?
du meinst doch aber nciht das von vs oder?

Sieht für mich so aus. Kann der Aggregation/Komposition vernünftig darstellen? Falls ja, habe ich das bisher immer übersehen...

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

Gelöschter Account
vor 15 Jahren

Sieht für mich so aus. Kann der Aggregation/Komposition vernünftig darstellen? Falls ja, habe ich das bisher immer übersehen...

nein da hast du ncihts übersehen. im allgemeinen kann er eigendlich nur sehr sehr wenig darstellen. eigendlich ist er nur dazu gedacht, das man sich einen knappen überblick generieren lassen kann, wenn man nichts anderes mehr zur verfügung hat.

#coder# Themenstarter:in
395 Beiträge seit 2008
vor 15 Jahren

Ist die Beziehung (Assoziation) zwischen dem AutomatGUI zu Getraenkeautomat so ok?

Beim Getraenkeautomaten und der Produkt Klasse eine Komposition, ein Automat hat beliebig viele Getränke.

P
67 Beiträge seit 2008
vor 15 Jahren

Ist die Beziehung (Assoziation) zwischen dem AutomatGUI zu Getraenkeautomat so ok?

Finde ich schon, da der Automat ja auch ohne Gui existieren könnte (ist dann halt nicht bedienbar).

Was mir noch aufgefallen ist (sehr unspektakulär), ist die Assoziation zwischen Automat und State. Sollte meines Wissens auch eine Komposition sein, da der Zustand ohne Automat nicht existieren kann (Oder überseh ich hier etwas?).
Zu den Zustandsklassen an sich kann ich mich nicht wirklich äußern, da es im UML richtig aussieht aber im Code? Keine Ahnung. Nehme mal an, auch richtig 😛

Religionskriege sind Konflikte zwischen erwachsenen Menschen, bei denen es darum geht, wer den cooleren, imaginaeren Freund hat

#coder# Themenstarter:in
395 Beiträge seit 2008
vor 15 Jahren

Was mir noch aufgefallen ist (sehr unspektakulär), ist die Assoziation zwischen Automat und State. Sollte meines Wissens auch eine Komposition sein, da der Zustand ohne Automat nicht existieren kann (Oder überseh ich hier etwas?).

..hab das im Netz überall so gesehen, auch hier:
http://www.dofactory.com/Patterns/PatternState.aspx

P
67 Beiträge seit 2008
vor 15 Jahren

Gut, mag sein (auch wenn ich es nicht ganz verstehe).
Sollte jetzt aber auch nicht soooo relevant sein (Oder bist du gerade dabei UML richtig zu lernen? Dann sollte man das evtl. mal mit einem diskutieren, der UML bis ins letzte beherscht 😄).

Religionskriege sind Konflikte zwischen erwachsenen Menschen, bei denen es darum geht, wer den cooleren, imaginaeren Freund hat

#coder# Themenstarter:in
395 Beiträge seit 2008
vor 15 Jahren

Wie sieht die Beziehung zwischen Getraenkeautomat und der Product Klasse aus, ich habe eine Komposition verwendet. Ich glaube es müsste eher eine Aggregation sein, denn eine Komposition sagt aus das sie ohne Product nicht existieren kann, denn ein Automat funktioniert auch wenn er leer ist, nicht wahr?!?!?

3.003 Beiträge seit 2006
vor 15 Jahren

Nein, aus meiner Sicht nicht. Ein Automat ohne zugeordnetes Produkt geht nicht. Leer wäre er, wenn ein Produkt zugeordnet ist, aber dessen Anzahl 0.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)