如何将代码/描述扩展到复杂对象?

ZG862

我想在回收者视图中显示一些复杂对象(即它们由其他对象的多个集合组成)的名称/基本属性列表,然后获取用户选择的完整对象。例如,顶级对象是“播放脚本”,每个对象都包含与播放脚本相关联的“演员”之一所说的许多“台词”。

我正在尝试使用 Android 架构组件来执行此操作,并且(使用 Florian @ codinginflow.com 的教程)成功地使用 Room 创建了一个简化的 Play_Script 类、DAO 和存储库。我还在 ASP.Net 中创建了一些基本的 REST Web 服务,它们可以提供来自 MySQL 数据库的数据。

令我震惊的是,我要走的路径会表现不佳,并且会使用过多的网络带宽来获取大量我不会使用的数据。我正在获取每个播放脚本(包括其口语等),以便我拥有播放脚本“名称”和“描述”属性来填充回收器。

在过去,我只是“从 Play_Script 中选择 ID、名称、描述”,一旦用户做出选择,我就会使用 ID 作为获取我需要的所有其他内容的关键。我怀疑我在数据实体的设计中遗漏了一些基本的东西,但无法想出任何关键字来让我搜索这种常见任务做得很好的例子(/根本)。

请你能帮助这个SO noob 解决他的第一个问题吗?

干杯,Z

5 月 15 日更新:虽然我没有得到回应,但从我最近几周阅读的内容(例如依赖注入)来看,我怀疑在 Android 开发中没有针对此类事情的全面方法。看起来人们通常要么检索大量数据,然后使用他们需要的数据,要么构建多个 Web 服务 API 来返回稀疏数据,其中包含客户端可在需要时用于扩展的密钥。因此,例如,您可以同时制作“plays_light”和“plays_detail”Get API。

ZG862

我的解决方案与我 5 月份的更新完全一样——即扩展 Web API 并提供许多类似的调用,这些调用返回不同粒度的信息。它不是特别优雅,我怀疑可能有更好的方法,但它有效。总的来说,我发现用户在父实体中需要较少的细节,而当我们接触到个别的孩子/孙子时,则需要更多的细节。

我现在确实意识到为什么有些应用程序如此缓慢:在 Web 服务设计中很容易偷懒,只返回大量数据——客户端只会使用其中的一个片段——并通过说服自己使用单个 API 来证明这一点将是普遍适用的,因此对于任何拿起我的代码的人来说更容易理解。

同样,这可能是我的经验不足,但我发现通过 API 调用检索的 Android 端关系数据的本地缓存非常笨拙 - 大量存储外键,然后重新解析 json 以将数据放入 SQLite 表中。我希望 Dagger 在简化这个方面比目前的情况更有用。我实际上解开了一大堆与 Dagger 相关的代码,只是为了保持我的理智。不确定我是否完全成功!

更好的答案仍然非常受欢迎。Z

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将控件扩展到父母的范围之外?

来自分类Dev

如何将“ ==”行为扩展到包含NA的向量?

来自分类Dev

如何将背景扩展到网格之外-Bootstrap

来自分类Dev

如何将dll的方法扩展到同名的类?

来自分类Dev

如何将输入字段扩展到div结束

来自分类Dev

如何将add()扩展到扩展arraylist的静态类?

来自分类Dev

如何将网格拉伸和扩展到父边缘

来自分类Dev

KendoTreeView:如何将树扩展到第一级?

来自分类Dev

如何将融合容器的尺寸限制扩展到50以上?

来自分类Dev

如何将这个Gabor面片扩展到边界框的大小?

来自分类Dev

如何将正在运行的应用程序扩展到PCR?

来自分类Dev

如何将单节点Kafka扩展到多节点集群?

来自分类Dev

如何将子div的高度扩展到父高度?

来自分类Dev

如何将应用程序扩展到多个公司

来自分类Dev

如何将视图扩展到抽屉式布局之外?

来自分类Dev

如何将非客户区域扩展到小于16像素的窗口中?

来自分类Dev

如何将选择扩展到EditText中的整个单词?

来自分类Dev

如何将UICollectionViewCell的可触摸区域扩展到其范围之外?

来自分类Dev

在UICollectionView中点击时如何将图像扩展到全屏视图?

来自分类Dev

如何将jq'as'变量的范围扩展到函数内部?

来自分类Dev

如何将0.1和0.22之间的数字扩展到更大的距离0和1?

来自分类Dev

如何将分类单元注释扩展到数据框中的单独列

来自分类Dev

如何将Azure SQL数据库的存储大小扩展到大于4 TB?

来自分类Dev

您如何将discord命令的用户输入扩展到多个单词?

来自分类Dev

如何将按钮的下拉菜单扩展到左侧?

来自分类Dev

如何将ipv4地址扩展到64位?

来自分类Dev

如何将main div扩展到整个浏览器窗口高度?

来自分类Dev

如何将GWT表列和小部件扩展到其中?

来自分类Dev

如何将模型类扩展到另一个模型?

Related 相关文章

  1. 1

    如何将控件扩展到父母的范围之外?

  2. 2

    如何将“ ==”行为扩展到包含NA的向量?

  3. 3

    如何将背景扩展到网格之外-Bootstrap

  4. 4

    如何将dll的方法扩展到同名的类?

  5. 5

    如何将输入字段扩展到div结束

  6. 6

    如何将add()扩展到扩展arraylist的静态类?

  7. 7

    如何将网格拉伸和扩展到父边缘

  8. 8

    KendoTreeView:如何将树扩展到第一级?

  9. 9

    如何将融合容器的尺寸限制扩展到50以上?

  10. 10

    如何将这个Gabor面片扩展到边界框的大小?

  11. 11

    如何将正在运行的应用程序扩展到PCR?

  12. 12

    如何将单节点Kafka扩展到多节点集群?

  13. 13

    如何将子div的高度扩展到父高度?

  14. 14

    如何将应用程序扩展到多个公司

  15. 15

    如何将视图扩展到抽屉式布局之外?

  16. 16

    如何将非客户区域扩展到小于16像素的窗口中?

  17. 17

    如何将选择扩展到EditText中的整个单词?

  18. 18

    如何将UICollectionViewCell的可触摸区域扩展到其范围之外?

  19. 19

    在UICollectionView中点击时如何将图像扩展到全屏视图?

  20. 20

    如何将jq'as'变量的范围扩展到函数内部?

  21. 21

    如何将0.1和0.22之间的数字扩展到更大的距离0和1?

  22. 22

    如何将分类单元注释扩展到数据框中的单独列

  23. 23

    如何将Azure SQL数据库的存储大小扩展到大于4 TB?

  24. 24

    您如何将discord命令的用户输入扩展到多个单词?

  25. 25

    如何将按钮的下拉菜单扩展到左侧?

  26. 26

    如何将ipv4地址扩展到64位?

  27. 27

    如何将main div扩展到整个浏览器窗口高度?

  28. 28

    如何将GWT表列和小部件扩展到其中?

  29. 29

    如何将模型类扩展到另一个模型?

热门标签

归档