Hi,
ich arbeite momentan an einem Projekt zur Eisenbahnsimulierung und bin mir bei der Implementierung der Benutzerschnittstelle noch nicht sicher.
Bisher war meine Idee, ein Interface namens Command zu erstellen und dann für jeden Befehl eine eigene Klasse. Wäre es nicht eventuell sogar besser jeweils eine Klasse für alle Add Befehle (add track, add train, ...), für alle List Befehle (list tracks, list engines, ...) zu erstellen, oder für alle Befehle, die sich auf ein coach (Wagen) beziehen also z. B. CoachCommands (create coach, list coaches, ...)?
Könnte mir jemand eine sinnvolle Klassen bzw. Implementierungsstruktur geben? Was mich außerdem verunsichert, sind die Anzahl Wörter der Befehle. Beispielsweise gibt es Befehle, die aus zwei Wörtern bestehen sollen (add track, delete track, list tracks, ...) und wiederum gibt es Befehle, die nur aus einem Wort bestehen (step, exit, ...). Ich zerschlage mir schon den ganzen Tag den Kopf darüber und bastel mir Codeschnipsel zusammen, wie ich dies clever implementieren kann. Leider bisher ohne wirklichen Erfolg.
Hier ist die Liste aller Befehle, die ich implementieren möchte:
- add track <startpoint> -> <endpoint>
- delete track <trackID>
- list tracks
- set switch <trackID> position <point>
- create engine <engineType> <class> <name> <length> <couplingFront> <couplingBack>
- list engines
- create coach <coachType> <length> <couplingFront> <couplingBack>
- list coaches
- create train-set <class> <name> <length> <couplingFront> <couplingBack>
- list train-sets
- delete rolling stock <id>
- add train <trainID> <rollingStockID>
- list trains
- show train <trainID>
- put train <trainID> at <point> in direction <x>,<y>
- step <speed>
- exit
ich arbeite momentan an einem Projekt zur Eisenbahnsimulierung und bin mir bei der Implementierung der Benutzerschnittstelle noch nicht sicher.
Bisher war meine Idee, ein Interface namens Command zu erstellen und dann für jeden Befehl eine eigene Klasse. Wäre es nicht eventuell sogar besser jeweils eine Klasse für alle Add Befehle (add track, add train, ...), für alle List Befehle (list tracks, list engines, ...) zu erstellen, oder für alle Befehle, die sich auf ein coach (Wagen) beziehen also z. B. CoachCommands (create coach, list coaches, ...)?
Könnte mir jemand eine sinnvolle Klassen bzw. Implementierungsstruktur geben? Was mich außerdem verunsichert, sind die Anzahl Wörter der Befehle. Beispielsweise gibt es Befehle, die aus zwei Wörtern bestehen sollen (add track, delete track, list tracks, ...) und wiederum gibt es Befehle, die nur aus einem Wort bestehen (step, exit, ...). Ich zerschlage mir schon den ganzen Tag den Kopf darüber und bastel mir Codeschnipsel zusammen, wie ich dies clever implementieren kann. Leider bisher ohne wirklichen Erfolg.
Hier ist die Liste aller Befehle, die ich implementieren möchte:
- add track <startpoint> -> <endpoint>
- delete track <trackID>
- list tracks
- set switch <trackID> position <point>
- create engine <engineType> <class> <name> <length> <couplingFront> <couplingBack>
- list engines
- create coach <coachType> <length> <couplingFront> <couplingBack>
- list coaches
- create train-set <class> <name> <length> <couplingFront> <couplingBack>
- list train-sets
- delete rolling stock <id>
- add train <trainID> <rollingStockID>
- list trains
- show train <trainID>
- put train <trainID> at <point> in direction <x>,<y>
- step <speed>
- exit