Привет Я разрабатываю игру в Java для целей обучения и есть вопрос, касающийся обработки в приложении данныхJava In-Application Storage из Xml данных
Скажем, у меня есть куча файлов XML, хранящий множество статистики для оружейных доспехов и т. д., и я разбираю эти файлы в своем приложении в виде списков;
Примечание. Эти данные никогда не будут меняться и фактически «окончательны», это постоянные данные, которые будут использоваться в игре.
Теперь, мой вопрос заключается в том, сохраните ли вы эти данные (для использования во время игры) в классе (в моем примере здесь одноэлементный) в вашем приложении, к которому вы можете легко получить доступ? Так, например, что-то вроде этого (где список был считан в другом месте с помощью XML-парсер)
public class WeaponData {
private List<Weapon> weaponData;
public static final WeaponData instance = new WeaponData(parseXml("weapons"));
private WeaponData(List<Weapon> data) {
weaponData = data;
}
public static WeaponData getInstance() {
return instance;
}
public List<Weapon> getWeaponData() {
return weaponData;
}
}
И позволяет мне использовать данные с
WeaponData.getInstance().getWeaponData();
Если это так, это путь об этом, или есть лучший способ?
Или, единственная альтернатива, о которой я могу думать, заключается в том, чтобы продолжать чтение XML всякий раз, когда это необходимо (что кажется неразумным, с учетом этого, этот поиск данных может (для коммерческого приложения по крайней мере) быть сетевой операцией, даже если в мой случай - это просто чтение hdd). Плюс, если что-то еще, это будет повторяющийся код.
Спасибо за ваше время!
Можете ли вы дать мне обзор того, насколько велик XML, потому что для небольших XML-файлов очень много работы по их сохранению в БД, а выигрыш не так много, вы можете кэшировать значение на диске, но вы будете добавьте сложность, поэтому для меня важно знать размер файла XML. Если мы говорим о Kbs, я предлагаю оставить это как есть. – moxi
Обратите внимание, что '' финал'' касается только справки. Вызов методов объекта, хранящегося в переменной '' final'', не имеет ничего общего с семантикой '' final''. Итак, в приведенном выше примере кто-то может изменить содержимое «Список weaponData'' после его создания –
Keith
Ну, я вообще не говорю о БД. Я думаю, что вы неправильно поняли, у меня есть xml-файлы, в которых они все в настоящее время находятся в нескольких килобайтах, я сомневаюсь, что они будут превышать 500 кбит или около того. Но я просто хочу знать, как вы могли бы сделать эти данные доступными (потенциально несколько раз) в приложении. – FinalFind