一个可以代替冗长switch-case的消息分发小框架

在项目中,我需要维护一个应用层的字节流协议。这个协议的每条报文都是一个字节数组,数组的头两个字节表示消息的传送方向,第三、四个字节表示消息ID,也就是消息种类,再往后是消息内容、时间戳、校验码等……整个消息看起来差不多长这样:

Message Head   Message ID   Content    Timestamp   Checksum  
2 bytes   2 bytes   n bytes    8 bytes   1 byte  

Message ID指定了消息类型,根据不同的消息类型,对Content有不同的解析方法。在处理报文的类中,我们不得不用一个switch-case结构去处理不同类型的报文:

1 switch(messageID){ 2 case 0x01: doSomething(); break; 3 case 0x02: doAnotherThing(); break; 4 case 0x03: doSomeOtherThing(); break; 5 ... 6 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzspg.html