Hallo HaBo
Ich befasse mich gerade mit dem State Pattern und frage mich, wie innerhalb der States die Datenverarbeitung zu realisieren ist. Nun, bei jedem State-Wechsel wird ein neues Objekt erzeugt und das aktuelle dann wieder gelöscht. Nur, falls ich Daten in Members speichern möchte, dann gehen diese Daten bei jedem Übergang verloren wenn dafür nicht eine geeignete Implementation vorhanden ist. Ich frage mich gerade, wie so etwas wohl am sinnvollsten zu realisieren ist.
Folgende Ideen habe ich spontan:
1) Die zu verarbeitenden Daten sind im Kontext des State Pattern gespeichert und werden dann jeweils mittels Pointer oder Referenz bei der Verarbeitung übergeben. Nicht eine schlechte Wahl, was aber, wenn ich um die 10 Parameter für die Verarbeitung habe? In einer Struktur zusammenfassen?
2) Man könnte die Daten und Parameter in jedem State in Members speichern und gibt diese dann jeweils bei erzeugen des neuen Objekt mit dem Konstruktor mit. Bei vielen Parametern hätte der Konstruktor dann einfach viele Parameter oder dann fasst man diese wie unter 1) zu einem struct zusammen. Der Vorteil dieser Methode wäre, dass bei einem zusätzlichen Parameter nur das Interface des Konstruktors erweitert werden müsste.
3) ...spontan habe ich keine weitere Idee ...
Deshalb, wer von euch hat Erfahrungen mit dem State Pattern oder sonst noch eine gute Idee. Ich möchte nicht basteln sondern etwas seriöses realisieren.
Ich befasse mich gerade mit dem State Pattern und frage mich, wie innerhalb der States die Datenverarbeitung zu realisieren ist. Nun, bei jedem State-Wechsel wird ein neues Objekt erzeugt und das aktuelle dann wieder gelöscht. Nur, falls ich Daten in Members speichern möchte, dann gehen diese Daten bei jedem Übergang verloren wenn dafür nicht eine geeignete Implementation vorhanden ist. Ich frage mich gerade, wie so etwas wohl am sinnvollsten zu realisieren ist.
Folgende Ideen habe ich spontan:
1) Die zu verarbeitenden Daten sind im Kontext des State Pattern gespeichert und werden dann jeweils mittels Pointer oder Referenz bei der Verarbeitung übergeben. Nicht eine schlechte Wahl, was aber, wenn ich um die 10 Parameter für die Verarbeitung habe? In einer Struktur zusammenfassen?
2) Man könnte die Daten und Parameter in jedem State in Members speichern und gibt diese dann jeweils bei erzeugen des neuen Objekt mit dem Konstruktor mit. Bei vielen Parametern hätte der Konstruktor dann einfach viele Parameter oder dann fasst man diese wie unter 1) zu einem struct zusammen. Der Vorteil dieser Methode wäre, dass bei einem zusätzlichen Parameter nur das Interface des Konstruktors erweitert werden müsste.
3) ...spontan habe ich keine weitere Idee ...
Deshalb, wer von euch hat Erfahrungen mit dem State Pattern oder sonst noch eine gute Idee. Ich möchte nicht basteln sondern etwas seriöses realisieren.