Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “的模式;“任意数据存储”平铺地图_Java_Design Patterns_Storage - Fatal编程技术网

Java “的模式;“任意数据存储”平铺地图

Java “的模式;“任意数据存储”平铺地图,java,design-patterns,storage,Java,Design Patterns,Storage,我正在建立一个平铺地图系统 有一个TileModel,在该类型的所有tile中共享;它处理渲染、动画、平铺状态等 然后还有TileData,它表示平铺贴图中的混凝土平铺,保存指向其模型的指针和任何可保存的数据(平铺可以包含放置的项目、陷阱属性、隐藏门、可锁定门等)。模型处理保存 TileModel +---------------------+ TileData | Rendering code |

我正在建立一个平铺地图系统

有一个TileModel,在该类型的所有tile中共享;它处理渲染、动画、平铺状态等

然后还有TileData,它表示平铺贴图中的混凝土平铺,保存指向其模型的指针和任何可保存的数据(平铺可以包含放置的项目、陷阱属性、隐藏门、可锁定门等)。模型处理保存

           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,让我们顺其自然吧。它不是超级漂亮,但似乎很管用。