最近工作中遇到显示玩家地图的需求,作为后端,我首先想到了图结构:

这样结构的好处是:类代码清晰易懂,一个节点表示所有地图。每个节点都知道自己的上下左右是谁。
后来与同事沟通,发现在使用上对于“图”的递归搜索在“绘图”的过程中必须使用递归,可能导致无法退出递归。用这种结构会导致协作变难,因为数组在传输层最为常见,突然使用递归结构,可能导致工作难度上升。
再由于后端对地图的存储,并非是用图,而是使用map结构。如果为了使用而使用,只是为了传输,新增一种结构,反而提高了复杂度。
经过讨论验证,依靠现有结构,定义了如下类结构。低成本的解决了此问题。

总结:
1、程序设计是为了更好更简单的解决问题。
2、不同的结构,在不同的规模的场景表现不同。需要符合场景地使用。