我有以下(简化的)架构:
客户端->保镖->服务器
客户端将命令发送到服务器。 “保镖”对客户端发出的命令进行完整性检查和其他检查,并防止错误的命令到达服务器。例如,保镖可能具有以下代码:
bool Bouncer::someCommand(const someCommandArg& arg) {
if (arg.x < 100) {
return false;
}
if (arg.y > 10) {
return false;
}
// more checks ...
return server->someCommand(arg);
}
这种方法的问题在于,必须将保镖条件一一硬编码,并且不够灵活。我正在寻找一种在一些配置文件中定义这些条件的方法,当创建该弹跳器时,该文件将被加载,并循环遍历所有
调用
someCommand
的条件。此外,测试循环本身必须快速。如果是C#,我想我会使用它的即时编译功能,并在配置文件中以纯代码编写我的
if
子句。您对C++有什么建议? 最佳答案
选择包括:
最佳选择在很大程度上取决于有用谓词的复杂性,性能要求,部署实践等。