Java “的模式;“任意数据存储”平铺地图
我正在建立一个平铺地图系统 有一个TileModel,在该类型的所有tile中共享;它处理渲染、动画、平铺状态等 然后还有TileData,它表示平铺贴图中的混凝土平铺,保存指向其模型的指针和任何可保存的数据(平铺可以包含放置的项目、陷阱属性、隐藏门、可锁定门等)。模型处理保存Java “的模式;“任意数据存储”平铺地图,java,design-patterns,storage,Java,Design Patterns,Storage,我正在建立一个平铺地图系统 有一个TileModel,在该类型的所有tile中共享;它处理渲染、动画、平铺状态等 然后还有TileData,它表示平铺贴图中的混凝土平铺,保存指向其模型的指针和任何可保存的数据(平铺可以包含放置的项目、陷阱属性、隐藏门、可锁定门等)。模型处理保存 TileModel +---------------------+ TileData | Rendering code |
TileModel
+---------------------+ TileData
| Rendering code | +-------------------------+
| Animation code | | Data for concrete tile |
| Tile state handling |<-------| Pointer to Model |
| Saving / Loading | +-------------------------+
+---------------------+
TileModel
+---------------------+蒂莱达塔
|渲染代码|+-------------------------+
|混凝土瓷砖的动画代码| |数据|
|平铺状态处理|创建一个TileModelData
接口,并创建一组平铺模型类,这些类实现TileModelData
,并包含特定于该平铺模型的数据的成员
interface TileModelData {
TileModel getModel();
}
class TileData {
...
TileModelData modelData;
}
class OceanTileData implements TileModelData {
static TileModel model = TileModel.Ocean;
TileModel getModel() { return model; }
int oceanDepth;
}
class ForestTileData implements TileModelData {
...
int treeDensity;
}
陛下我不确定你是否理解我的意思。。模型是磁贴逻辑/参数/渲染的独特实现,而磁贴只是一个数据持有者。磁贴模型和数据的一些示例是什么?很难用简短的评论来解释。。TileData是代表世界的巨大阵列的一部分。每个磁贴都包含当前数据,例如掉落的项目、箱子内容、车门解锁状态。然后模型是所有类型的一个模型,有点像瓷砖所引用的单例。这是一种逻辑数据分离模式。不管怎样,我现在已经完成了一些基本的impl,让我们顺其自然吧。它不是超级漂亮,但似乎很管用。