繁体   English   中英

处理数据包的设计模式

[英]Design pattern for handling packets

我正在为游戏项目编写TCP网络。 当数据包进入时,数据包的第一个字节确定该数据包的处理类型。 然后,应将数据包转发到根据其句柄类型处理数据包的方法

我可以有很多逻辑案例,然后根据数据包类型调用方法,但是我想看看我可以实现哪些更好的设计模式来减少代码重复。

我已经考虑过使用订阅者/通知者模式,我并不完全反对它,但是我感觉好像要进行一堆Subscribe(packetType,funcReference)调用,因此也许也不理想。

具有处理每种数据包类型的大switch语句是完全可以接受的。 即使在给定处理的数据包有多个解析程序的情况下,您也可以在这种情况下触发已订阅的回调。

根据我的经验,这是人们(过去包括我自己)为了“更好”的代码而变得过于复杂的情况之一。 乍看之下,先开关后手柄非常容易,并且易于扩展。

由于您的数据包类型标记仅是一个字节,因此您可以创建一个指针数组来处理大小为256个元素的函数。 程序启动后初始化一次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM