集团模式:每个屏幕都有自己的集团?



我正在学习Flutter的集团模式,似乎有一个反复出现的建议,即"每个屏幕都应该有自己的集团"。

但是,如果您在服务器中查询将在多个屏幕中使用的数据,该怎么办?对于同一块数据多次访问服务器似乎是多余的,甚至是浪费的,特别是如果您知道数据没有更改(例如,当没有使用任何改变/更新它的操作时(。

无论如何,您可以以某种方式保存该数据以重用它吗?在存储库级别存储以这种方式使用的数据是个好主意吗?或者这只是使用集团的可接受成本?

架构决策总是高度固执己见,没有灵丹妙药。

好吧,你去吧。


无论如何,您可以以某种方式保存该数据以重用它吗?

是的。可以按以下方式构建应用。

小部件 -> 集团 -> 存储库 -> 本地数据库/远程 API

因此,您的集团永远不会直接进行任何 API 调用,但您的存储库层可以。 因此,存储库层可以决定是否从远程 API 或本地数据库甚至从内存缓存中获取数据。这样,您就可以在应用的多个屏幕上重复使用已缓存的数据。

有趣的是,如果你以这种方式构建你的应用程序,对代码进行单元测试将非常容易。


存储库级别存储以这种方式使用的数据是个好主意吗?

是的。

最新更新