处理回包的方法讨论,是不是一定要用switch?
在网络编程中,对于回包的处理总是需要一个循环的,不断的接包,然后根据包的内容进行处理.
这个循环就好象windows的消息循环,mfc处理这种循环其实还是使用switch的方法,不过包装了一些宏来处理,看起来好象不是switch.不过要添加一个消息处理就必须添加一个宏,比如ON_XXMESSAGE,就面向对象的设计来看,这是违反了面向对象的原则的,违反了Open-Close原则的.相信大家在编程的时候,可能遇到过添加一个消息处理函数,结果发现没有作用,后来发现原来是忘了写一个对应的宏.这个设计其实隐藏着错误.
网络编程里面回包其实也是这样一个处理,我尝试过使用模板,重载等等手段都无法摈弃switch(究其原因还是因为运行期完全没有类型这个概念,由包到类型的鸿沟无法逾越----我本来想通过命令字来生成类型信息然后激发重载机制的).
我想跟诸位讨论一下,你们是怎么处理回包的消息循环的?希望大家不要说我不实用,毕竟是讨论,我也想追求一种美感.