具体方案具体分析,此代码适合分类业务进行的if else操作,解决多分支问题
//方案一:职责链设计模式
#include <iostream>
#include <vector>
#include <string>
#include <string.h>
using namespace std;
typedef string KV;
class ProcessCmdFromWeb
{
protected:
ProcessCmdFromWeb *successor;
public:
ProcessCmdFromWeb()
{
successor = NULL;
}
virtual int ProcessCmd(KV& in, KV& out)
{
cout<<"**"<<endl;
return 0;
}
void SetSuccesssor(ProcessCmdFromWeb *successor)
{
this->successor = successor;
}
};
class ProcessSysResQuery:public ProcessCmdFromWeb
{
public:
int ProcessCmd(KV& in, KV& out)
{
if(strcmp(in.c_str(), "a1") == 0)
{
cout<<"a1"<<endl;
}
else if(strcmp(in.c_str(), "a2") == 0)
{
cout<<"a2"<<endl;
}
else if(successor != NULL)
{
successor->ProcessCmd(in, out);
}
r