处理数据包的设计模式
Design pattern for handling packets
我正在为一个游戏项目编写TCP网络。当数据包进入数据包的第一个字节时,确定该数据包的处理类型。然后,应将数据包转发到基于其句柄类型处理数据包的方法
我可以有一堆逻辑案例,然后根据数据包类型调用方法,但我想看看我可以实现哪些更好的设计模式来减少代码重复。
我已经考虑过使用订阅者/通知程序模式,我并不完全反对它,但我觉得我会有一堆订阅(数据包类型,funcReference)调用,所以也许它也不理想。
有一个处理每种数据包类型的大交换机语句是完全可以接受的。即使在给定的已处理数据包有多个解析器的情况下,您也可以在这种情况下触发订阅的回调。
根据我的经验,这是人们(包括我自己,过去)会为了感觉像"更好"的代码而过于复杂的情况之一。开关然后手柄乍一看非常容易摸索,并且易于扩展。
由于数据包类型标记只是一个字节,因此您可以创建一个指针数组,以处理大小为 256 个元素的函数。在程序启动时初始化一次。
相关文章:
- 派生类是否可以在抽象工厂设计模式中具有数据成员
- 资源管理设计模式
- boost::asio UDP 广播客户端仅接收"fast"数据包
- 使用C++模板的数据映射器设计模式
- 处理数据包的设计模式
- 阻塞模式下的WSASend()是否会导致在完成端口中放置通知数据包
- 是否有自定义内存分配器设计模式不在其分配中存储元数据
- 什么设计模式将数据部分保存在持久存储 (SQL) 中,部分保存在 RAM(内存)中
- 数据交换的设计模式
- 使用 ns2 监视混杂模式下的数据包
- 如何在工厂设计模式中设置派生产品类的数据成员
- 消息包标头的设计模式
- 网络数据包解析类设计
- 具有继承的桥接设计模式,其中抽象基类具有成员数据
- c++中多模型数据分析的设计模式
- 保护数据设计模式
- 是否存在用于在子类的数据上实施规则的设计模式
- 设计模式-用于简单静态数据的C++架构
- 多态数据转换/转换设计模式
- 如何将不同的数据结构集成为一个?任何设计模式或经验