我想编写一个支持多种命令的程序
为了使其通用且易于扩展以用于以后的新命令,我想为每个命令编写一个类(具有自己的处理),并使用处理函数调用基本'command'类。
我知道在Java中有一个类类来帮助处理这样的事情 - 决定'在流程上'它正在处理的类的类型。
cpp有类似的机制吗?如果是这样,它是什么以及我如何使用它?
如果没有,我该怎么办才能让它轻松扩展?
非常感谢。
答案 0 :(得分:1)
您可以使用纯虚方法实现Command类。
http://www.exforsys.com/tutorials/c-plus-plus/c-pure-virtual-function-and-base-class.html
答案 1 :(得分:1)
尽管可以使用Class类来决定Java中的流,但最好使用多态 - 它使得类可以在不需要修改的情况下打开扩展(SOLID中的“O”)。
在C ++中也是如此。您可以使用RTTI,但虚拟方法允许您使用命令扩展类而无需修改它。
来自Gamma等人的“设计模式”:
这种模式的关键是抽象 命令类,声明一个 用于执行操作的接口。在 它最简单的形式是这个界面 包括一个抽象的Execute 操作
答案 2 :(得分:0)
您可以使用RTTI,但我建议您找到另一种方法。