我正在学习Flutter
的集团模式,似乎有一个反复出现的建议,即"每个屏幕都应该有自己的集团"。
但是,如果您在服务器中查询将在多个屏幕中使用的数据,该怎么办?对于同一块数据多次访问服务器似乎是多余的,甚至是浪费的,特别是如果您知道数据没有更改(例如,当没有使用任何改变/更新它的操作时(。
无论如何,您可以以某种方式保存该数据以重用它吗?在存储库级别存储以这种方式使用的数据是个好主意吗?或者这只是使用集团的可接受成本?
架构决策总是高度固执己见,没有灵丹妙药。
好吧,你去吧。
无论如何,您可以以某种方式保存该数据以重用它吗?
是的。可以按以下方式构建应用。
小部件 -> 集团 -> 存储库 -> 本地数据库/远程 API
因此,您的集团永远不会直接进行任何 API 调用,但您的存储库层可以。 因此,存储库层可以决定是否从远程 API 或本地数据库甚至从内存缓存中获取数据。这样,您就可以在应用的多个屏幕上重复使用已缓存的数据。
有趣的是,如果你以这种方式构建你的应用程序,对代码进行单元测试将非常容易。
在存储库级别存储以这种方式使用的数据是个好主意吗?
是的。