Должен ли я иметь один класс POJO, представляющий все возможные столбцы, возвращаемые из таблицы комнат? - PullRequest
0 голосов
/ 15 мая 2018

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

В первую очередь меня беспокоит память, поскольку нулевые значения по-прежнему создают указатели, занимающие пространство. Ведениеразные POJO и их обновление - это хлопотно - требуются конвертеры и фабрики.Но следующая модель также может стать больше.

data class Photo(
val id: Long,
val name: String?,
val isFavourite: Boolean?,
val isPrivate: Boolean?,
val fileType: String?,
val dateTaken: Long?,
val height: Int?,
val width: Int?,
val location: String?)

1 Ответ

0 голосов
/ 15 мая 2018

При разработке модели вы должны следовать SOLID принципам.В соответствии с этим вы должны построить свою модель на основе ответов на:

  • Все ли фотографии имеют тип файла, идентификатор, высоту и ширину: вероятно, да - это означает, что это поле должно принадлежать фотографии.
  • У всех фотографий есть dateTaken, location, isPrivate и т. Д. - Если нет, вы можете использовать ассоциацию = Создать POJO, как PhotoInfo.С этой точки зрения вы можете создавать POJO, сгруппированные по парам и т. Д.

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

...