Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE
又和一个团队合作,面前又摆着一堆分发的代码,不同的是,这次用的是
C++
:
if (msg->id == "open") {
MsgHandler handler(msg);
handler.open();
} else if (msg->id == "close") {
MsgHandler handler(msg);
handler.close();
} else if (…) {
…
} else {
// exception handler
…
}
不要问我为什么不是每个消息对应一种处理类,要是知道为什么,就不是遗留代码了。于是,我们尝试着用 C++ 写了一个 dispatcher 。下面是这个 <
if (msg->id == "open") {
MsgHandler handler(msg);
handler.open();
} else if (msg->id == "close") {
MsgHandler handler(msg);
handler.close();
} else if (…) {
…
} else {
// exception handler
…
}
不要问我为什么不是每个消息对应一种处理类,要是知道为什么,就不是遗留代码了。于是,我们尝试着用 C++ 写了一个 dispatcher 。下面是这个 <