Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 铁路仿真的命令处理程序/解析器_Java_User Interface_Command Line_Command Line Arguments - Fatal编程技术网

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

Java 铁路仿真的命令处理程序/解析器,java,user-interface,command-line,command-line-arguments,Java,User Interface,Command Line,Command Line Arguments,我正试图找到一个好方法来为我的铁路模拟创建一个用户界面 现在,我已经用execute、getName、getArguments方法创建了一个“Command”接口,然后为每个命令创建了一个类(AddTrack、DeleteTrack、…、Exit)。 然而,我仍在努力寻找一种获取所有参数、处理错误输入等的好方法。是否有人对我的UI有更好的想法,或者可以给我一些基本的结构 以下是我要实现的所有命令的列表: -添加曲目-> -删除曲目 -列出曲目 -设置开关位置 -创建引擎 -列出引擎 -创建coa

我正试图找到一个好方法来为我的铁路模拟创建一个用户界面

现在,我已经用execute、getName、getArguments方法创建了一个“Command”接口,然后为每个命令创建了一个类(AddTrack、DeleteTrack、…、Exit)。 然而,我仍在努力寻找一种获取所有参数、处理错误输入等的好方法。是否有人对我的UI有更好的想法,或者可以给我一些基本的结构

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

-添加曲目->
-删除曲目
-列出曲目
-设置开关位置
-创建引擎
-列出引擎
-创建coach
-列出教练名单
-创建列车组
-列出列车组
-删除机车车辆
-增加列车
-列火车
-表演列车
-把火车开到正确的方向,
-台阶
-出口
把它们放在同一个方法中可能是一种不好的做法。这就是为什么我的计划是为每个命令创建一个新类


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

如果您只想创建一个命令行工具,我将创建一些与“菜单”(命令处理)相关的特定类,然后为特定域创建特定类(与火车、轨道、发动机等相关的事物)


因此,您可能最终会遇到一个有点臃肿的命令处理,它包含一些状态(如cli应用程序中的位置),让用户选择某种状态(如果他想要操纵轨道、火车或查看有关引擎的信息)。所有这些都在一个(或几个)时间内处理菜单类。此类负责保存状态并“导航”用户(这意味着调用其他类和方法)。

如果您只想创建一个命令行工具,我将创建一些与“菜单”(命令处理)相关的特定类,然后为特定域创建特定类(与火车、轨道、发动机等相关的事物)


因此,您可能最终会遇到一个有点臃肿的命令处理,它包含一些状态(如cli应用程序中的位置),让用户选择某种状态(如果他想要操纵轨道、火车或查看有关引擎的信息)。所有这些都在一个(或几个)时间内处理菜单类。此类负责保持状态并“导航”用户(这意味着调用其他类和方法).

有人能给我一个具体的实施结构吗?我一整天都在努力解决这个问题。有人能给我一个具体的实施结构吗?我一整天都在努力解决这个问题
 - 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