处理数据包的设计模式

Design pattern for handling packets

本文关键字:设计模式 数据包 处理      更新时间:2023-10-16

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

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

我已经考虑过使用订阅者/通知程序模式,我并不完全反对它,但我觉得我会有一堆订阅(数据包类型,funcReference)调用,所以也许它也不理想。

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

根据我的经验,这是人们(包括我自己,过去)会为了感觉像"更好"的代码而过于复杂的情况之一。开关然后手柄乍一看非常容易摸索,并且易于扩展。

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