正确设计,以便为不同视图使用相同的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正确设计,以便为不同视图使用相同的数据相关的知识,希望对你有一定的参考价值。

我是企业界的新手,从设计的角度来看,如果我在这里做错了,请纠正我

我从Flickr API获取图像。

目标:以两种不同类型的视图,网格视图和列表视图显示这些图像。哪个可以通过幻灯片切换。

所以我使用的是一个带有两个片段的View寻呼机,这两个片段都有不同的监听器。因此,当响应来自Flickr时,这两个听众都会收到通知。

在我看来,这节省了两次调用REST API,但我正在寻找更高效的设计或流程

  • 使用单个监听器
  • 应该调用Rest API一次
  • 结果应该是store(Just in ArrayList)并共享给两个视图
  • 可能不会选择两个单独的片段
  • 避免两次创建Adapter对象
  • 图像应存储在缓存中

任何调整或建议都会有所帮助,如果您不理解任何部分或整个问题,请发表评论。

答案

对于上述问题,你正在思考的调整几乎是正确的。除下面之外:

我相信您必须创建两个不同的适配器才能更好地控制不同的视图。例如,您可能希望在列表视图中使用缩放类型裁剪中心显示图像,但在网格视图中显示缩放类型中心内部的图像。您可能想要执行不同类型的事情。因此,制作两个不同的适配器是一个很好的做法,以使代码更易于管理。

对于片段也是如此,看看两个片段中的动作是否相同,或者可以通过单个变量传递来完成。然后只用一个片段。

其余的东西都很完美。

以上是关于正确设计,以便为不同视图使用相同的数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在两个不同的视图模型中使用相同的模型数据?

如果我有 2 个具有相同视图但逻辑不同的 Angular 组件,如何正确构建代码?

正确的做法?重用相同的故事板视图和视图控制器

相同数据的不同视图之间的转换概念

2022-01-25:序列化和反序列化 N 叉树。 序列化是指将一个数据结构转化为位序列的过程,因此可以将其存储在文件中或内存缓冲区中,以便稍后在相同或不同的计算机环境中恢复结构。 设计一个序列化和反

为每个表/集合具有相同表/集合的多个实例的网站设计数据库的正确方法是啥?