通过多个功能发送任意数据

时间:2009-02-19 19:45:19

标签: c++ design-patterns

创建一个遵循state design pattern的状态系统(到目前为止工作得非常好),我现在想知道是否有办法向该系统发送任意数据。我想这可能是使用Stimulus类来实现的。

系统本身被合成为另一个可以响应刺激的对象,状态机和状态本身也可以有刺激,它们将通过函数调用从外层传递到内层。问题在于刺激需要将任意数据传递到这些不同的水平,我想不出一个简单的方法来解决它。

我当时认为可能使用dynamic_cast,但我想知道是否有更好的方法。

2 个答案:

答案 0 :(得分:2)

boost :: any可能会对你有用,具体取决于你在做什么。

答案 1 :(得分:1)

如果它真的是任意的话,dynamic_cast是你最好的选择。如果您希望状态机的所有部分都使用有限数量的数据方法,那么将传递给状态机的所有数据类继承自描述这些方法的纯虚拟类会更为优雅,然后做所有通过该课程。