Я пытаюсь найти хороший способ создания пользовательского интерфейса для моей железнодорожной симуляции.
На данный момент я создал интерфейс «Command» с методами execute , getName , getArguments , а затем я создал класс для каждая команда (AddTrack, DeleteTrack, ..., Exit). Тем не менее, я все еще борюсь с хорошим способом получить все аргументы, обрабатывая неправильные данные и т.д. c. Кто-то имеет лучшую идею для моего пользовательского интерфейса или может дать мне некоторую базовую c структуру для него?
Вот список всех команд, которые я хочу реализовать:
- 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
Считать их всех одним и тем же методом, вероятно, плохая практика. Вот почему я планирую создать новый класс для каждой команды.
Моя проблема в том, что я не уверен, как определить команды, так как некоторые состоят из одного слова (например, выход, шаг), а некоторые состоят из двух слов (добавить трек, удалить трек, установить переключатель). Вы бы порекомендовали создать один класс для всех команд добавления (добавить дорожку, добавить поезд, ...), команды списка (список дорожек, механизмы списков, ...) и т. Д.?