开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++(C++ mfc)
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
none
问题(Question):
我现在需求是让使用者在一开始,决定他要用TCP连线还是serial连线
TCP和serial不是重点
重点是我希望进去后两种连线是用完全一样的class, function name
例如open, close, recv, send
这样才方便后面架构的整洁
目前我的写法是这样
int CMyDoc::mainLoop()
{
CConnect conn;
type = TCP; //使用者设定成TCP
conn.open();
while(1)
{
conn.recv(A,B,C);
}
}
int CConnect::open()
{
if(type == TCP)
m_tcpConn.open();
else(type == SERIAL)
m_serialConn.open();
//两个open分别有不同程式码
}
int CConnect::recv(A,B,C)
{
if(type == TCP)
m_tcpConn.recv(A,B,C);
else(type == SERIAL)
m_serialConn.recv(A,B,C);
}
而CConnect拥有成员
CTcpConnect m_tcpConn;
CSerialConnect m_serialConn;
这会造成我每次用recv时,都会多花一次在比对他的类型,实在很伤效能
想请问版上有没有人能提供对付这种问题的关键字或建议呢?
希望是一开始有个注册步骤,或者直接用index指到正确function之类的(?)
要维持最外层的function不动,里面用到正确的处理方式
可是又不会跟我目前一样每次进去都要比对一次
非常感谢各位m(_ _)m