【问题标题】:How to transfare data from DB to some buiseness entity如何将数据从数据库传输到某个业务实体
【发布时间】:2019-01-30 14:35:55
【问题描述】:

现在我正在开发一个 Android 应用程序,它有一个主要的 Activity,它通过 GLSurface 显示一些数据。可以通过多种方式更改此数据。为此,我有几个片段,其中包含一些带有额外逻辑的变体列表。问题是我需要以某种方式将数据从一个地方传输到另一个地方。

例如:

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

有没有更好的方法来做到这一点?我还可以创建只包含必填字段的第三类。但是在哪里放置以及如何调用它?也许有一些最佳方式的模式或指导方针......

【问题讨论】:

    标签: android database architecture


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-19
      • 2018-06-25
      • 2010-09-19
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      相关资源
      最近更新 更多