C++实时策略模式来处理不同的数据
C++ Real-Time Strategy Pattern to process Different Data
我目前正在研究一种在 c++ 中实现策略模式的有效方法,该模式在运行时(它应该实时运行)方面是有效的,但又是模块化的。
更具体地说,考虑一个将处理来自不同来源的数据的系统。数据的抽象处理步骤总是相同的(想想模板模式)。但是,要使用的特定算法可能取决于处理哪些数据(即其来源)。因此,我想通过适当的接口设置确定策略的上下文,但保持实际处理接口的固定。
为了使事情进一步复杂化,我需要模块化,即我需要能够在不同的源代码设置之间切换,而无需重写完整的代码。(高编译时模块化。
为了让您更多地了解我正在尝试的内容,这里有一些显然不起作用的精简示例代码:
class GeneralDataContainer
{
int some_general_data;
}
template<typename type>
class DataContainer : GeneralDataContainer
{
type some_specific_data;
}
class SubmoduleInterface
{
void setContext(SomeContextIdentifier & context){...}
void processData(GeneralDataContainer & data){...}
}
现在的问题是:我怎样才能让它工作?
我研究的主要方向是标准的OO多态性(它有表查找的问题)和CRTP,我不知道如何访问子模块和封闭策略算法中的特定数据(some_specific_data)。
这很可能是一个非常愚蠢的问题,并且有一个直截了当的答案。但我就是无法弄清楚,所以如果有人比我有更多的 c++ 经验(基本上应该是每个人),我可以为我指出正确的方向,那就太好了。提前谢谢。
据我了解,主要目标是根据您拥有的特定数据使用不同的处理算法。
看起来策略模式给出了这个问题的解决方案,它在运行时有效。对于每个新源,您只需实现额外的具体类。
如果我没有得到你的问题,请添加更多解释或示例,说明你想做什么。
相关文章:
- 使用流处理接收到的数据
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 在运行时处理类型擦除的数据-如何不重新发明轮子
- 我可以使用哪种数据结构来处理这种方式
- OpenCV(C++)处理来自JavaScript / Web Assembly的图像数据
- 分析和数据处理 使用点云库的 las 文件
- 使用 seekp() 和 tellg() 进行数据处理
- 高速罐数据处理而无需使用堆内存
- C++中游戏的动态数据处理
- C++ istream 运算符>>不良数据处理
- 以下数据处理任务是否适合GPU计算
- 自动决定要用于数据处理的类
- 外部进程与线程和数据处理
- 为大型本地数据处理扩展堆栈的大小是个好主意吗
- MPI大数据处理
- Lua vs嵌入式Lisp和潜在的其他候选.用于基于集合的数据处理
- 大数据处理技术与书籍
- Win32异步客户端传入数据处理
- c++ Win32数据处理线程
- 关于高性能流式数据处理的问题