【发布时间】:2011-01-23 11:54:36
【问题描述】:
我正在制作一款 Android Java 应用游戏(尽管这个问题确实适用于所有语言)并希望尽快发布第一个版本。我对如何在游戏中保存数据感到紧张。我的问题是,如果在以后的更新中,我决定存储更多数据或以不同的方式存储相同的数据,我需要小心我不会丢失或损坏升级用户的数据(即我希望用户能够在新版本中使用旧版本创建的数据,比如他们之前的高分)。
例如,假设我想在版本 1 中保存高分,我使用如下类:
class Score { String name; int score; }
然后我将分数存储在 ArrayList 中,然后为了保存/加载分数,我序列化 ArrayList 对象。
在 1.1 版中,也许我决定要存储每个分数的日期。然后,我可以更新 Score 对象以包含日期字段,如果旧对象不包含日期,则使用日期的默认值。
在 1.2 版中,也许我决定将分数存储在 TreeSet 中,而在 1.3 版中,我可能还想在线加载/存储分数。
无论如何,我的意思是,这里有什么让我的生活更轻松的一般技巧吗?我特别关注上面的情况,一个人从1.1升级到1.2,一个人从1.0升级到1.2。测试所有场景的数据损坏听起来很头疼。
这真的只是一个考虑很难选择一个明智和可扩展的东西开始的例子吗?
我认为使用 String->Object 中的 HashMap 作为通用存储对象可能很容易,例如storage.put("HighScoreName1", "Bob"); storage.put("HighScorePoints1", 15);.与使用自定义类相比,获取信息有点混乱,但添加额外字段等似乎很容易,无需太多工作。迭代以这种方式存储的列表并不是很好。
【问题讨论】:
标签: java c++ android serialization file