我有一个程序,它将命令作为字符串。字符串中的每个字符代表一个命令。命令的一个例子如下:
OBIPC
O - 打开文件
B - 以粗体显示文字
I - 以斜体显示文字
P - 打印文本
C - 关闭文件
我的程序必须解析此字符串并执行相应的工作。每个命令按顺序执行。我提出了以下想法来做到这一点。
这种方法对我的问题是最好的还是你看到任何简单/有效的方法来做到这一点?这不是特定于任何编程语言,我可以使用任何编程语言。我正在寻找的只是想要做到这一点。
有什么想法吗?
答案 0 :(得分:3)
是的。这正是我要做的,除了使用Runnable :: run()而不是IExececutable :: Execute()。
答案 1 :(得分:0)
许多脚本语言允许您调用类似eval()的函数,它实际上将字符串作为代码运行。这可能是做这类事情的最简单方法......也是最不安全的。
答案 2 :(得分:0)
每个命令真的需要5个班级吗?您可以在.h中创建一个接口,该接口公开一个使字符串具有参数的函数。在.cpp中,您可以拥有一个继承自接口的类。隐藏在后面的类可以分析字符串并抛出异常,以防它包含与命令无关的字符(字符的顺序是否重要?)。分析结束后,它可以为每个命令调用一个类函数。