Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类型安全事件/消息传递系统 我最近一直尝试在C++中设计通用的、易于扩展的事件/消息传递系统,但是我遇到以下问题: 如何以类型安全的方式进行设计? 在回答问题1时,它如何真正可扩展和解耦? 面向对象的范例是解决这类问题的好选择吗?_C++_Oop_Events_Design Patterns_Messaging - Fatal编程技术网

类型安全事件/消息传递系统 我最近一直尝试在C++中设计通用的、易于扩展的事件/消息传递系统,但是我遇到以下问题: 如何以类型安全的方式进行设计? 在回答问题1时,它如何真正可扩展和解耦? 面向对象的范例是解决这类问题的好选择吗?

类型安全事件/消息传递系统 我最近一直尝试在C++中设计通用的、易于扩展的事件/消息传递系统,但是我遇到以下问题: 如何以类型安全的方式进行设计? 在回答问题1时,它如何真正可扩展和解耦? 面向对象的范例是解决这类问题的好选择吗?,c++,oop,events,design-patterns,messaging,C++,Oop,Events,Design Patterns,Messaging,这一切都是通过尝试使消息传递系统与WinAPI依赖于消息/事件id和2个通用参数的系统相似开始的,这些参数根据事件从系统的客户端强制转换为适当的类型,但我找不到任何设计/模式/习惯用法来确保其类型安全。无论我在什么地方想到什么解决方案,它都依赖于某种类型的强制转换,而根据许多观点,这种类型的转换并不与面向对象的范例相冲突 有人能告诉我,这种系统是否可以用C++语言设计, 如果是,怎么做 此外,使用更好的设计在所有情况下是否都可以避免使用不好的强制转换,或者在某些情况下强制转换是不可避免的?使用模

这一切都是通过尝试使消息传递系统与WinAPI依赖于消息/事件id和2个通用参数的系统相似开始的,这些参数根据事件从系统的客户端强制转换为适当的类型,但我找不到任何设计/模式/习惯用法来确保其类型安全。无论我在什么地方想到什么解决方案,它都依赖于某种类型的强制转换,而根据许多观点,这种类型的转换并不与面向对象的范例相冲突

有人能告诉我,这种系统是否可以用C++语言设计, 如果是,怎么做


此外,使用更好的设计在所有情况下是否都可以避免使用不好的强制转换,或者在某些情况下强制转换是不可避免的?

使用模板如何?@JoachimPileborg在这种情况下我如何使用它们?如何?您还可以将现成的解决方案与类型安全和平台无关的序列化结合起来,例如,和,瞧,消息传递系统是一种双重调度问题。我们希望对消息和消息类别进行统一处理,每个消息中都有多态状态,并对消息进行多态处理。我们甚至希望能够定义新类型的消息,将它们分配到类别中,并在很远的地方处理它们。那么,查找双重分派解决方案?