Сохранить пользовательские данные в текстовом файле или сериализованном объекте - PullRequest
1 голос
/ 11 ноября 2011

Мне нужно сохранить закладки для программы, которую я создаю.Это закладки Xposition, Yposition и zoom.Должен ли я просто прочитать и записать все закладки в текстовый файл или поместить их в объект Bookmarks и сериализовать его.Меня интересует, какой из них будет лучше ОО дизайн.

Ответы [ 5 ]

1 голос
/ 11 ноября 2011

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

формат действительно зависит от вас, XML, JSON, CSV

если вы решили использовать сериализацию Java, я бы порекомендовал хранить ваши данные в HashMap

и оберните свой аксессор вокруг карты

public class Config {

    private HashMap map; 
    Congif(HashMap map) { this.map = map; }

    <T> T get(Class<T> clazz, String key) {
        return (T) map.get(key);
    }

    void put(String key, Serializable value) {
        map.put(key, value);
    }
} 
1 голос
/ 11 ноября 2011

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

0 голосов
/ 11 ноября 2011

Это может ответить на ваш вопрос.

Я бы порекомендовал текстовый файл в формате XML или JSON для упрощения межсистемной совместимости.

Сериализация отличная, ноЭто будет сложно, если вы решите когда-либо изменить сериализуемый объект.

Если вы решите сериализоваться, убедитесь, что вы определили SERIAL_VERSION_UID для своего объекта.Подробнее об этом можно прочитать здесь .

0 голосов
/ 11 ноября 2011

Я бы все равно создал класс Bookmark.Затем я бы создал интерфейс BookmarkSerializer с методами serialize() и deserialize().Затем я могу создать свою первую реализацию BookmarkSerializer.Например, он может быть основан на собственной сериализации Java, обычном тексте, CSV, XML и т. Д. Итак, я могу выбрать один, реализовать его, а затем использовать его в моем приложении.

Когда одна реализация мне не подходит, я могу добавить другую.Дело в том, что в этом случае мне не придется ничего менять в моем приложении, кроме инициализации самого сериализатора.

Я думаю, что в вашем случае вам следует начать с самой простой реализации CSV, а если этого недостаточнодобавьте столько реализаций, сколько вам нужно.

0 голосов
/ 11 ноября 2011

Использование объектов, как правило, лучший дизайн ОО.

Для простоты поддержки я использую текстовый файл, поскольку его легко просматривать (чтобы проверить это правильно) и редактировать (чтобы исправить это)

...