android - 如何将数据从数据库传输到某个业务实体

标签 android database architecture

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

例如:

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

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

最佳答案

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

关于android - 如何将数据从数据库传输到某个业务实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54241519/

相关文章:

c# - 我如何在我的数据库表中显示一些项目(很多)?

ios - iOS中从中央服务器查询大量数据的建议

architecture - .NET 中字符串解析的合适层是什么?

java - 我的登录按钮什么都不做

java - 如何在应用程序初始化时初始化选项卡内容

android - Chrome 自定义选项卡在工具栏外显示操作按钮

android - 在每个 ListView 行上显示小计

mysql - 合并多个表时使用ID进行排序

java - Spring data Redis 到 Elastic Cache 连接 list

php - 如何将 mysqli_query 结果转换为 int?