【发布时间】:2009-07-29 04:57:50
【问题描述】:
我有一个以字符串形式获取命令的程序。字符串中的每个字符代表一个命令。下面给出一个命令示例
OBIPC
O - 打开一个文件
B - 将文本设为粗体
I - 将文本设为斜体
P - 打印文本
C - 关闭文件
我的程序必须解析这个字符串并做相应的工作。每个命令按顺序执行。为此,我提出了以下想法。
- 为每个命令创建操作类。每个都有一个Execute() 方法并实现一个接口IExecutable。所以如果我有 5 个命令,我将有 5 个类来处理每个命令。
- 将可以执行操作的命令和关联对象保存在关联容器中(C++ 中的 std::map 和 .NET 中的 Dictionary)。
- 遍历输入字符串中的每个字符。检查与每个角色相关的任何操作。如果是,获取动作对象并调用Execute()。某种命令设计模式。如果某些字符没有关联的操作,则抛出错误或跳过。
这种方法最适合我的问题,还是您认为有任何简单/有效的方法可以做到这一点?这不是特定于任何编程语言的,我对任何编程语言都可以。我正在寻找的只是这样做的想法。
有什么想法吗?
【问题讨论】: