Вопрос разработки приложений Java - PullRequest
2 голосов
/ 26 апреля 2010

У меня есть хобби-проект, который в основном состоит в том, чтобы поддерживать задачи «todo» так, как мне нравится. Одна задача может быть описана как:

public class TodoItem {
    private String subject;
    private Date dueBy;
    private Date startBy;
    private Priority priority;
    private String category;
    private Status status;
    private String notes;
}

Как вы можете себе представить, у меня было бы 1000 предметов todo в данный момент времени.

  • Какова лучшая стратегия для хранения предмет todo? (в настоящее время в файле XML) так, что все элементы загружены быстро на запуске приложения ( приложение показывает вид панели всех предметов при запуске)?
  • Каков наилучший способ разработать его back-end, чтобы его можно было портировать на Android / или телефон на базе J2ME?
  • В настоящее время это делается с помощью Java. Качели. На чем я должен сосредоточиться так что он работает эффективно на устройстве где память ограничена?
  • Приложение открывает форму ввести новое задание todo. Сейчас я хотел бы сохранить недавно добавленный задача my-todos.xml, когда пользователь нажимает кнопку «сохранить». Каковы общие способы добавить такое изменение в существующий файл XML? (обратите внимание, что я не хочу снова читать весь файл, а затем сохранять его)

Ответы [ 4 ]

3 голосов
/ 26 апреля 2010

Для хранения: SQLite кажется хорошим решением для таких вещей, как поиск и кроссплатформенная поддержка. Android и многие другие устройства поддерживают SQLite.

1 голос
/ 26 апреля 2010

Как и в любом другом вопросе программирования, есть много способов сделать что-то. Однако, указав, что вы собираетесь пойти на телефон, вы увидите список изменений. Во-первых, вам нужно посмотреть на предполагаемые телефоны, чтобы увидеть, что они поддерживают. Особенно с точки зрения хранения данных.

XML или другой формат плоского файла будет работать нормально, если у вас не слишком много данных и вы не хотите включать поиск и другие функции, которые будут обращаться к данным случайным образом.

Но если вы хотите хранить большие объемы данных или осуществлять произвольный доступ, вам нужно изучить методы хранения данных, которые больше похожи на базы данных. Именно здесь вы и предполагали, что целевые платформы могут вводить ограничения с точки зрения производительности или ограничений хранилища.

Другой альтернативой является то, что вы разрабатываете приложение так, чтобы его хранилище было отделено от основной программы. Это означает, что вы можете применять различные типы хранилищ данных, в зависимости от того, ПК это или телефон, но при этом не нужно перекодировать все остальное.

0 голосов
/ 26 апреля 2010

Возможно, вы сможете использовать java.util.prefs.Preferences.

0 голосов
/ 26 апреля 2010

Один вариант, который приходит на ум, - это БД в памяти, которая существует в различных вариантах. Я еще не использовал один из них, поэтому не могу рассказать вам об использовании памяти или ограничениях платформы. Тем не менее, стоит посмотреть.

Другой вариант, который приходит на ум, - это поддерживать большую коллекцию объектов TodoItem и писать собственный код для чтения и сохранения этой коллекции в файл XML. По сути, создайте класс, который содержит большую карту (или то, что вы решите использовать), и пусть этот класс реализует Externalizable.

Обе эти опции позволят вам прочитать XML-файл в его представлении в памяти, выполнить поиск и изменить состояние и, в конечном итоге, записать окончательное состояние обратно в XML, когда приложение выйдет из строя (или с фиксированными интервалами, независимо от того, что вы решить).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...