用于铁路仿真的命令处理程序/解析器

问题描述 投票:1回答:1

我正在尝试找到一种为铁路仿真创建用户界面的好方法。

目前,我已经使用方法executegetNamegetArguments创建了一个“命令”接口,然后为每个命令(AddTrack,DeleteTrack等创建了一个类)。 , 出口)。但是,我仍在努力获取所有参数,处理错误的输入等的好方法。有人对我的UI有更好的主意还是可以给我一些基本的结构?

这是我要实现的所有命令的列表:

 - 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

将它们全部放在同一方法中可能是一个坏习惯。这就是为什么我的计划是为每个命令创建一个新类。

我的问题是我不确定如何识别命令,因为有些命令由一个单词组成(例如退出,步骤),而有些命令由两个单词组成(添加轨道,删除轨道,设置开关)。您是否建议为所有添加命令(添加轨道,添加火车等),列表命令(列表轨道,列表引擎等)创建一个类?

java user-interface command-line command-line-arguments
1个回答
0
投票

如果只想创建命令行工具,我将创建一些与'菜单'(命令处理)相关的特定类,然后为特定域提供特定的类(与火车,轨道,引擎等相关的东西上)。

因此,您可能最终会拥有一些状态(例如cli-app中的位置),从而使用户有点肿,让用户选择某种状态(如果他想操纵轨道,火车或查看有关以下信息,引擎)。所有这些东西都在一个(或几个)菜单类中处理。此类负责保持状态并“导航”用户(这意味着调用其他类和方法)。

© www.soinside.com 2019 - 2024. All rights reserved.