我正在学习Flutter
的集团模式,似乎经常出现这样的建议:“每个屏幕都应该有自己的集团”。
但是,如果您向服务器查询要在多个屏幕上使用的数据该怎么办?多次访问服务器以获取同一条数据似乎是多余的,甚至是浪费的,尤其是在您知道数据没有更改的情况下(例如,当没有使用任何更改/更新操作时)。
无论如何,您是否可以以某种方式保留该数据以进行重用?在存储库级别存储以这种方式使用的数据是一个好主意吗?还是这只是使用团体的可接受费用?
答案 0 :(得分:1)
建筑决策始终是高度自以为是的,没有灵丹妙药。
好,你去。
当然是。您可以按照以下方式设计应用程序。
小部件-> Bloc->存储库->本地数据库/远程API
因此,您的集团永远不会直接进行任何API调用,但是您的repo层会做到。因此,回购层可以决定是从远程API还是本地DB甚至从内存缓存中获取数据。这样,您可以在应用程序的多个屏幕上重复使用已经缓存的数据。
有趣的是,如果您以这种方式构建应用,那么对代码进行单元测试将非常容易。
是的