Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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/8/design-patterns/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_Design Patterns - Fatal编程技术网

Java 接受用户输入和调用方法的设计模式

Java 接受用户输入和调用方法的设计模式,java,design-patterns,Java,Design Patterns,我需要实现一个电脑游戏,我写的控制解决方案,以采取用户输入 我正在研究命令模式,但不确定它是否适合于此。在不了解更多输入信息的情况下,可能值得研究读取和解析输入的方法,以及实际执行命令的命令模式。在不了解更多输入信息的情况下,可能值得一看读取和解析输入的方法,以及实际执行命令的命令模式。该技术通常称为“”,但解释器模式描述了一般模式。该技术通常称为“”,但是解释器模式描述了一般模式。在命令模式中,最好使命令不可变,这意味着没有运行时输入。不要把问题过分复杂化。您所需要做的就是实时接受输入并以某种

我需要实现一个电脑游戏,我写的控制解决方案,以采取用户输入


我正在研究命令模式,但不确定它是否适合于此。

在不了解更多输入信息的情况下,可能值得研究读取和解析输入的方法,以及实际执行命令的命令模式。

在不了解更多输入信息的情况下,可能值得一看读取和解析输入的方法,以及实际执行命令的命令模式。

该技术通常称为“”,但解释器模式描述了一般模式。

该技术通常称为“”,但是解释器模式描述了一般模式。

在命令模式中,最好使命令不可变,这意味着没有运行时输入。不要把问题过分复杂化。您所需要做的就是实时接受输入并以某种方式对其进行解释(如果您设定了一种模式,请参阅Thomas的提示)。如果您试图消除一个大的switch语句或大的If-else块,那么抽象工厂模式可能是值得的。

在命令模式中,最好使命令不可变,这意味着没有运行时输入。不要把问题过分复杂化。您所需要做的就是实时接受输入并以某种方式对其进行解释(如果您设定了一种模式,请参阅Thomas的提示)。如果您试图消除一个大的switch语句或大的If-else块,那么抽象工厂模式可能是值得的。

IMO,命令模式在这种情况下被过度使用。如果命令是完全瞬态的——您不打算存储或操作对象——那么增加的复杂性、对象代码开销和使用命令的样板文件就没有什么意义了


更合适的方法是简单的开关和方法调用。也许您希望将正在调用的接口从实现中分离出来,尽管这可以在稍后完成(如果您喜欢测试或跟踪,您可能会提前完成)。如果可以更改键,那么从输入值到操作值的简单映射应该很简单。

IMO,命令模式在这种情况下被过度使用。如果命令是完全瞬态的——您不打算存储或操作对象——那么增加的复杂性、对象代码开销和使用命令的样板文件就没有什么意义了


更合适的方法是简单的开关和方法调用。也许您希望将正在调用的接口从实现中分离出来,尽管这可以在稍后完成(如果您喜欢测试或跟踪,您可能会提前完成)。如果可以更改键,那么从输入值到操作值的简单映射应该很简单。

您能详细说明您的命令输入吗?您能详细说明您的命令输入吗?谢谢Tom-我认为命令模式可能有点过度工程化了。我正在考虑使用一个输入处理程序类,该类接受输入,在映射中查找相应的键,并尝试通过另一个类中的反射来调用Maps value方法,例如key_a、performmovelefaction()key_S、performMoveRightAction()key_SPACE、performFireAction()等映射可以从文件加载,并允许配置。这听起来合理吗?它是否符合任何特定的模式?它读起来有点像一个精简的访问者模式。谢谢Tom-我认为命令模式可能有点过于工程化了。我正在考虑使用一个输入处理程序类,该类接受输入,在映射中查找相应的键,并尝试通过另一个类中的反射来调用Maps value方法,例如key_a、performmovelefaction()key_S、performMoveRightAction()key_SPACE、performFireAction()等映射可以从文件加载,并允许配置。这听起来合理吗?它是否符合任何特定的模式?它读起来有点像一个精简的访客模式。