我需要为我正在编写的计算机游戏实施一个控制解决方案来接受用户输入。
我正在看Command模式,但不确定它是否适合这个。
答案 0 :(得分:2)
IMO,Command模式在这种情况下被过度使用。如果命令完全是瞬态的 - 你不会存储或操纵对象 - 那么增加的复杂性,目标代码开销和使用命令的样板都没什么意义。
更合适的方法是简单的切换和方法调用。也许您可能想要从实现中分离出您正在调用的接口,尽管这可以在以后完成(如果您喜欢测试或跟踪,您可能会比以后更快地完成此操作)。如果可以更改键,则从输入值到操作值的简单映射应该很简单。
答案 1 :(得分:1)
在不了解您的输入的情况下,可能值得查看Interpreter pattern来读取和解析输入,并结合命令模式来实际执行命令。
答案 2 :(得分:1)
该技术通常称为“double dispatch”,但解释器模式描述了一般模式。
答案 3 :(得分:1)
在命令模式中,最好使命令不可变,这意味着没有运行时输入。不要过分复杂化问题。您需要做的就是接受实时输入并以某种方式解释它(如果您设置了模式,请参阅Thomas的提示)。如果你试图消除一个大的switch语句或大的if-else块,抽象的工厂模式可能是值得的。