我正在制作一个在线游戏,当我从客户端接收数据时,我会收到几个“结构”(比如“我的位置”、“使用药水 23”、“攻击玩家 45”、“talk bla bla”、注销等) .),这些结构被安全读取并放入结构中,推送到列表中并(稍后,当服务器有时间时)进行处理。
问题是处理是一个大的 switch 语句(打开某种枚举-“RTTI”),我有 60 多个不同的结构,它们都是不同的。
因此,包含处理代码的 .cpp 开始变得相当大,并且随着我不断向游戏添加功能(c++ 大约在 4000-5000 行之间),它不会随时缩小。
我可以看到一个简单的解决方案,每种情况都会调用另一个文件中的函数,但这实际上会(请注意 harriyott,是的,因为我的项目和驱动器将被新文件淹没)会爆炸我需要知道的文件数量并跟踪。
我知道我可以在几个 fileN.cpp 中分割它(案例)并在处理文件中制作 '#include "file1.cpp" #include "file2.cpp" 等等,但这似乎是非常错误的。我“想出”来规避这个问题的任何其他方式似乎都太“hacky”了。
所以问题是,你如何很好地拆分一个大的 switch 语句?
你可以