Как перенести данные из БД в какой-то бизнес-объект - PullRequest
0 голосов
/ 17 января 2019

Сейчас я работаю над приложением Android, в котором есть одно основное действие, которое отображает некоторые данные через GLSurface. Эти данные могут быть изменены разными способами. Для этого у меня есть несколько фрагментов с некоторыми списками вариантов с дополнительной логикой. Проблема в том, что мне нужно как-то перенести данные из одного места в другое.

Например:

У меня есть фрагмент со списком элементов. Я использовал RecyclerView с пользовательским адаптером. Я заполняю список данными из БД. SomeThingDBEntity например. Когда я получаю его из Room DB (используя сущности Room), но у него есть некоторые дополнительные поля, которые требуются только для отображения элементов в RecyclerView. Мне нужно отправить выбор пользователя от адаптера к фрагменту, затем от фрагмента к действию, после чего активность отправляет его в некоторый класс, который инкапсулирует логику работы с GLSurface. SomeThingGLentity например. Сейчас я пропускаю только поля, которые SomeThingGLentity требуются для отображения данных (int, String и т. Д.), Но в будущем этот список может увеличиться. Я также могу отправить напрямую SomeThingDBEntity и получить обязательные поля только в конце, когда применяются изменения к SomeThingGLentity. Но можно ли так использовать сущность Room DB?

Есть ли лучший способ сделать это? Я также могу создать третий класс, который будет содержать только обязательные поля. Но где разместить и как это назвать? Может быть, есть какие-то шаблоны или рекомендации, как лучше всего это сделать ...

1 Ответ

0 голосов
/ 30 января 2019

Похоже, вам нужен картограф данных. Нечто похожее на это - https://github.com/android10/Android-CleanArchitecture/blob/master/data/src/main/java/com/fernandocejas/android10/sample/data/entity/mapper/UserEntityDataMapper.java. Если вы воспользуетесь этим подходом, вы сможете инкапсулировать логику преобразования из вашего DBEntity в ваш BusinessEntity, и если вы измените формат данных в одном из них, потребуется редактировать только ваш картограф.

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