我正在努力建立一个基于网络的小游戏(websockets和nodejs),我只是好奇哪种方法被认为是更好的练习/更高效。
我有一堆可以连接到游戏服务器的客户端。每个客户端都有许多需要保存的不同属性..
目前我已将这些区域划分为单独的阵列,因此如果我需要获得用户12的位置,我会查看 usrPos [12] .x ,如果我需要将信息发送到客户通过websocket我看 usrSoc [12] .id 等等。
我最近一直想知道我是否应该将所有信息合并到一个数组中。所以我看看 usr [12] .pos.x 和 usr [12] .soc.id 。显然,这会创建一个更大的对象数组,但在某种程度上提高了可读性。此外,我不需要跟踪10个不同的数组来存储一个用户的数据。
那么哪种方式更好?一种方法比另一种更有效吗?有兴趣听听人们的想法。谢谢!
答案 0 :(得分:2)
哪种方式更好?好吧,我们在谈论基本的OOP,这里:你有许多不同的“数组”,其中包含有关客户端的信息,客户端的信息分散在许多不同的数组中,每个数组必须与另外10个数组共享索引。
您遇到了问题:从套接字阵列中删除套接字时会发生什么,但是不删除该位置? BUG!
因此,如果客户端是客户端,则将其视为一个整体,使用10个(在您的示例中)复合属性,关于客户端的套接字,其属性等。
请不要考虑“效率”。您的问题的答案不是关于效率,而是关于可维护性,稳健性和简单性。这通常会让你自然地朝着更好的性能发展,但只有在遇到性能问题时才应该关心性能。
请记住(将其写在墙上):Premature optimization is the root of all evil。