如何将数据从数据库传输到某些商务实体

时间:2019-01-17 17:46:03

标签: android database architecture

现在,我正在使用Android应用程序,该应用程序具有一个主要活动,该活动通过GLSurface显示一些数据。该数据可以通过多种方式进行更改。为此,我有几个片段,以及一些带有额外逻辑的变体列表。问题是我需要以某种方式将数据从一个地方传输到另一个地方。

例如:

我有带有元素列表的片段。我将RecyclerView与自定义适配器一起使用。我用数据库中的数据填充列表。例如SomeThingDBEntity。当我从Room DB(使用Room实体)获取它时,它具有一些仅在RecyclerView中显示元素所需的额外字段。我需要将用户的选择从适配器发送到片段,然后从片段发送到活动,然后活动将其选择发送给封装了GLSurface的工作逻辑的某个类。例如SomeThingGLentity。现在,我仅传递SomeThingGLentity所要求的用于显示数据的字段(intString等),但是将来这个列表会增加。我还可以直接发送SomeThingDBEntity并仅在将更改应用于SomeThingGLentity时最后获得必填字段。但是可以这样使用Room DB实体吗?

有什么更好的方法吗?我也可以创建仅包含必填字段的第三类。但是在哪里放置以及如何调用呢?也许有一些最佳做法的模式或准则...

1 个答案:

答案 0 :(得分:1)

您似乎需要一个数据映射器。与此类似的内容-https://github.com/android10/Android-CleanArchitecture/blob/master/data/src/main/java/com/fernandocejas/android10/sample/data/entity/mapper/UserEntityDataMapper.java。 如果使用这种方法,则可以封装从DBEntity到BusinessEntity的转换逻辑,并且如果要更改其中之一的数据格式,则仅需要编辑映射器。