2013-08-16 5 views
0

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

У меня есть два класса, класс Person и класс People. Я буду читать и писать эти (от и до sharedPerferencesFile) из нескольких видов деятельности. Сейчас у меня есть класс PersistData, который обрабатывает чтение и запись. Когда я хочу читать или писать этих ребят, я получаю экземпляр класса PersistData и затем вызываю такие методы, как persistData.write (person); или persistData.write (люди); Это хороший способ сделать это, или я должен переместить код чтения и записи в класс Person and People?

+0

Спасибо за ввод всех! – nPn

ответ

0

Я обычно использую класс я называю SettingsProvider, называя что-то вроде new SettingsProvider(this).getPerson(); и new SettingsProvider(this).setPerson(person); so yes, this is exactly how i would do it.

0

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

Как sharedPreference является одним файлом, поэтому данные будут постоянными.

0

Это зависит от того, как вы видите/определяете обязанности своих классов. Person не обязательно нужно знать, как хранить его в общих настройках, что-то вроде Person#saveToPrefs() можно рассматривать как плохой дизайн (тесной связи с общими предпочтениями)

PersistData с другой стороны, не нужно знать, как сериализованный формат человек детально смотрит, так что здесь есть слабость.

Я думаю, что самый чистый способ - разделить все это. Класс, который знает, как хранить материал в общих предпочтениях, и класс, который знает, как создавать сериализованные данные, но все равно, как эти сериализованные данные используются.

Смежные вопросы